@namewta/speculo 0.3.4 → 0.5.0
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 -5
- package/package.json +1 -1
- package/template/canonical/canonical-specdev-engineering-cognitive-mentor.md +5 -0
- package/template/canonical/canonical-specdev-goal-plan.md +366 -59
- package/template/canonical/canonical-specdev-grill-with-docs.md +153 -104
- package/template/canonical/canonical-specdev-spec.md +5 -0
- package/template/canonical/canonical-specdev-tickets.md +5 -0
- package/template/canonical/canonical-specdev-wayfinder.md +171 -249
- package/template/commands/docs-sync.md +3 -3
- package/template/skills/docs-sync/SKILL.md +4 -3
- package/template/skills/docs-sync/assets/report-template.md +1 -0
- package/template/skills/docs-sync/references/agents/agent-writing.md +75 -0
- package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/claude-redirect.md +1 -1
- package/template/skills/docs-sync/references/agents-contract.md +23 -1
- package/template/skills/typescript-standards-builder/README.md +53 -0
- package/template/skills/typescript-standards-builder/SKILL.md +245 -0
- package/template/skills/typescript-standards-builder/examples/sample-generated-tree.md +30 -0
- package/template/skills/typescript-standards-builder/examples/sample-interview-decisions.md +26 -0
- package/template/skills/typescript-standards-builder/manifest.txt +29 -0
- package/template/skills/typescript-standards-builder/references/00-governance-and-fixed-defaults.md +77 -0
- package/template/skills/typescript-standards-builder/references/01-project-discovery.md +100 -0
- package/template/skills/typescript-standards-builder/references/02-interview-workflow.md +129 -0
- package/template/skills/typescript-standards-builder/references/03-project-architecture-and-directory-layout.md +84 -0
- package/template/skills/typescript-standards-builder/references/04-file-directory-and-symbol-naming.md +92 -0
- package/template/skills/typescript-standards-builder/references/05-modules-imports-exports-and-dependencies.md +63 -0
- package/template/skills/typescript-standards-builder/references/06-typescript-type-system.md +64 -0
- package/template/skills/typescript-standards-builder/references/07-functions-async-errors-and-resources.md +42 -0
- package/template/skills/typescript-standards-builder/references/08-comments-jsdoc-and-documentation.md +51 -0
- package/template/skills/typescript-standards-builder/references/09-testing-strategy.md +58 -0
- package/template/skills/typescript-standards-builder/references/10-react-and-frontend.md +39 -0
- package/template/skills/typescript-standards-builder/references/11-node-cli-and-cross-platform.md +31 -0
- package/template/skills/typescript-standards-builder/references/12-formatting-lint-and-complexity.md +58 -0
- package/template/skills/typescript-standards-builder/references/13-configuration-dependencies-and-ci.md +71 -0
- package/template/skills/typescript-standards-builder/references/14-security-performance-and-i18n.md +32 -0
- package/template/skills/typescript-standards-builder/references/15-git-review-and-delivery.md +28 -0
- package/template/skills/typescript-standards-builder/references/16-adoption-exceptions-and-migration.md +61 -0
- package/template/skills/typescript-standards-builder/references/17-generation-contract.md +104 -0
- package/template/skills/typescript-standards-builder/references/README.md +37 -0
- package/template/skills/typescript-standards-builder/templates/agents-compat-skill/SKILL.md +1 -0
- package/template/skills/typescript-standards-builder/templates/claude-skill/SKILL.md +1 -0
- package/template/skills/typescript-standards-builder/templates/project-skill/SKILL.md.template +34 -0
- package/template/skills/typescript-standards-builder/templates/project-skill/references/00-project-profile.md.template +17 -0
- package/template/skills/typescript-standards-builder/templates/project-skill/references/10-review-checklist.md +23 -0
- package/template/skills/typescript-standards-builder/templates/project-skill/references/11-decisions-and-exceptions.md.template +19 -0
- package/template/workflows/specdev/G-grill-with-docs/G-grill-with-docs.md +78 -73
- package/template/workflows/specdev/G-grill-with-docs/design-tree-template.json +9 -0
- package/template/workflows/specdev/G-grill-with-docs/grilling-protocol.md +16 -35
- package/template/workflows/specdev/G-grill-with-docs/log-format.md +2 -0
- package/template/workflows/specdev/I-implement/I-implement.md +12 -10
- package/template/workflows/specdev/I-implement/design-it-twice.md +45 -6
- package/template/workflows/specdev/I-implement/evidence-template.md +7 -0
- package/template/workflows/specdev/I-implement/execution-preflight.md +6 -0
- package/template/workflows/specdev/INDEX.md +11 -4
- package/template/workflows/specdev/P-goal-plan/P-goal-plan.md +23 -10
- package/template/workflows/specdev/P-goal-plan/completion-control.md +20 -7
- package/template/workflows/specdev/P-goal-plan/goal-plan-template.md +55 -3
- package/template/workflows/specdev/P-goal-plan/orchestration-protocol.md +42 -38
- package/template/workflows/specdev/P-goal-plan/planning-modes.md +36 -2
- package/template/workflows/specdev/R-review-architecture/R-review-architecture.md +67 -80
- package/template/workflows/specdev/R-review-architecture/architecture-report-contract.md +123 -0
- package/template/workflows/specdev/R-review-architecture/architecture-review-report-template.html +103 -55
- package/template/workflows/specdev/R-review-architecture/architecture-review-template.md +20 -29
- package/template/workflows/specdev/W-wayfinder/W-wayfinder.md +76 -147
- package/template/workflows/specdev/W-wayfinder/investigation-ticket-template.md +8 -53
- package/template/workflows/specdev/W-wayfinder/local-tracker-contract.md +36 -0
- package/template/workflows/specdev/W-wayfinder/solution-comment-template.md +17 -0
- package/template/workflows/specdev/W-wayfinder/wayfinder-map-template.md +12 -65
- package/template/workflows/specdev/common/README.md +4 -0
- package/template/workflows/specdev/common/rules/artifact-contract.md +5 -0
- package/template/workflows/specdev/common/rules/codebase-design.md +148 -0
- package/template/workflows/specdev/common/schemas/design-tree.schema.json +35 -0
- package/template/workflows/specdev/common/schemas/wayfinder-ticket.schema.json +19 -0
- package/template/workflows/specdev/common/skills/subagent-delivery/SKILL.md +61 -0
- package/template/workflows/specdev/common/skills/subagent-delivery/references/external-web-subagent.md +32 -0
- package/template/workflows/specdev/common/skills/subagent-delivery/references/github-checkpoints.md +24 -0
- package/template/workflows/specdev/common/skills/subagent-delivery/references/native-subagent.md +35 -0
- package/template/workflows/specdev/common/skills/subagent-delivery/references/source-package.md +17 -0
- package/template/workflows/specdev/common/tools/validate-specdev.mjs +226 -5
- package/template/skills/agents-md-builder/SKILL.md +0 -30
- package/template/skills/typescript-engineering-standards/README.md +0 -36
- package/template/skills/typescript-engineering-standards/SKILL.md +0 -158
- package/template/skills/typescript-engineering-standards/examples/comment-patterns.md +0 -47
- package/template/skills/typescript-engineering-standards/examples/naming-patterns.md +0 -42
- package/template/skills/typescript-engineering-standards/examples/project-layouts.md +0 -75
- package/template/skills/typescript-engineering-standards/examples/review-output-example.md +0 -25
- package/template/skills/typescript-engineering-standards/examples/type-modeling-patterns.md +0 -66
- package/template/skills/typescript-engineering-standards/manifest.txt +0 -33
- package/template/skills/typescript-engineering-standards/references/00-standard-levels-and-precedence.md +0 -51
- package/template/skills/typescript-engineering-standards/references/01-project-architecture-and-directory-layout.md +0 -105
- package/template/skills/typescript-engineering-standards/references/02-file-directory-and-symbol-naming.md +0 -117
- package/template/skills/typescript-engineering-standards/references/03-modules-imports-exports-and-dependencies.md +0 -111
- package/template/skills/typescript-engineering-standards/references/04-typescript-type-system.md +0 -150
- package/template/skills/typescript-engineering-standards/references/05-functions-async-errors-and-resources.md +0 -142
- package/template/skills/typescript-engineering-standards/references/06-comments-jsdoc-and-documentation.md +0 -104
- package/template/skills/typescript-engineering-standards/references/07-testing-strategy.md +0 -84
- package/template/skills/typescript-engineering-standards/references/08-react-and-frontend.md +0 -91
- package/template/skills/typescript-engineering-standards/references/09-node-cli-and-cross-platform.md +0 -92
- package/template/skills/typescript-engineering-standards/references/10-formatting-lint-and-complexity.md +0 -107
- package/template/skills/typescript-engineering-standards/references/11-configuration-dependencies-and-ci.md +0 -86
- package/template/skills/typescript-engineering-standards/references/12-security-performance-and-i18n.md +0 -65
- package/template/skills/typescript-engineering-standards/references/13-git-review-and-delivery.md +0 -79
- package/template/skills/typescript-engineering-standards/references/14-adoption-exceptions-and-migration.md +0 -84
- package/template/skills/typescript-engineering-standards/references/15-orca-derived-observations.md +0 -54
- package/template/skills/typescript-engineering-standards/references/README.md +0 -45
- package/template/skills/typescript-engineering-standards/templates/.editorconfig +0 -12
- package/template/skills/typescript-engineering-standards/templates/AGENTS.typescript.md +0 -21
- package/template/skills/typescript-engineering-standards/templates/code-review-checklist.md +0 -37
- package/template/skills/typescript-engineering-standards/templates/package-scripts.json +0 -11
- package/template/skills/typescript-engineering-standards/templates/prettier.json +0 -6
- package/template/skills/typescript-engineering-standards/templates/pull-request-template.md +0 -37
- package/template/skills/typescript-engineering-standards/templates/tsconfig.base.json +0 -17
- package/template/skills/typescript-engineering-standards/templates/tsconfig.project-references.json +0 -8
- package/template/workflows/specdev/I-implement/codebase-design-glossary.md +0 -12
- package/template/workflows/specdev/I-implement/deepening.md +0 -17
- /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/content-contract.md +0 -0
- /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/evidence-collection.md +0 -0
- /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/manifest-discovery.md +0 -0
- /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/role-classification.md +0 -0
- /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/templates/aggregator-AGENTS.md +0 -0
- /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/templates/capability-module-AGENTS.md +0 -0
- /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/templates/contract-module-AGENTS.md +0 -0
- /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/templates/repo-root-AGENTS.md +0 -0
- /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/templates/runnable-app-AGENTS.md +0 -0
- /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/templates/scripts-docs-AGENTS.md +0 -0
- /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/writing-style.md +0 -0
|
@@ -13,21 +13,32 @@
|
|
|
13
13
|
- 若本地项目提供 Speculo Node 校验器,可运行它补充结构校验;纯网页环境按本文内联的 schema、Ready 清单和完成标准逐项核对,并明确记录未运行的自动校验。
|
|
14
14
|
- 提交、推送、合并、部署、发布、归档移动和不可逆迁移仍需用户明确授权。
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
不留情面地访谈用户,直到达成共识。把这件事映射为一棵**设计树(design tree)**:每个决策都会分出挂在它下面的后续决策。
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
按**轮次**推进这棵树。**前沿(frontier)** 是所有前置条件已经确定的决策——那些现在就能问、不必猜测尚未得到答案的问题。每轮询问完整 frontier;用户的答案会重塑设计树并解除下一层问题的阻塞。
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
本 work 还负责把访谈持久化:设计树保存可恢复状态,LOG 保存讨论轨迹,CONTEXT 保存当前领域真相,ADR 保存长期架构决定。持久化不构成实现授权;在用户确认共识前不进入实现。
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
22
|
+
## 输入与产物
|
|
23
|
+
|
|
24
|
+
按存在情况读取:
|
|
25
|
+
|
|
26
|
+
- `specdev/config.json`
|
|
27
|
+
- `specdev/adr/`
|
|
28
|
+
- `specdev/context/`
|
|
29
|
+
- `specdev/changes/{change}/source-issue.md`
|
|
30
|
+
- `specdev/changes/{change}/triage.md`
|
|
31
|
+
- `specdev/changes/{change}/diagnosis.md`
|
|
32
|
+
- `specdev/changes/{change}/spec.md`
|
|
33
|
+
- 下方 `<artifact-contract>` 标签
|
|
34
|
+
- 下方 `<planning-principles>` 标签
|
|
35
|
+
|
|
36
|
+
本 work 拥有:
|
|
37
|
+
|
|
38
|
+
- `specdev/changes/{change}/design-tree.json`
|
|
39
|
+
- `specdev/changes/{change}/LOG.md`
|
|
40
|
+
- `specdev/changes/{change}/CONTEXT.md`
|
|
41
|
+
- `specdev/changes/{change}/ADR.md`
|
|
31
42
|
|
|
32
43
|
不存在的可选输入静默跳过,不把缺失文件伪装成已知事实。
|
|
33
44
|
|
|
@@ -35,102 +46,96 @@
|
|
|
35
46
|
|
|
36
47
|
### 1. 启动或恢复 change
|
|
37
48
|
|
|
38
|
-
创建或恢复 `specdev/changes/{change}
|
|
39
|
-
|
|
40
|
-
首次启动时创建:
|
|
49
|
+
创建或恢复 `specdev/changes/{change}/`。首次启动时创建 `specdev/changes/{change}/.status.json`、`specdev/changes/{change}/ADR.md`、`specdev/changes/{change}/LOG.md`、`specdev/changes/{change}/CONTEXT.md`,并以 下方 `<design-tree-template>` 标签 为模板创建 `specdev/changes/{change}/design-tree.json`。
|
|
41
50
|
|
|
42
|
-
|
|
43
|
-
- 架构决策:`specdev/changes/{change}/ADR.md`
|
|
44
|
-
- 设计日志:`specdev/changes/{change}/LOG.md`
|
|
45
|
-
- 领域上下文:`specdev/changes/{change}/CONTEXT.md`
|
|
46
|
-
|
|
47
|
-
创建和更新格式分别遵循:
|
|
51
|
+
分别使用:
|
|
48
52
|
|
|
49
53
|
- 下方 `<adr-format>` 标签
|
|
50
54
|
- 下方 `<log-format>` 标签
|
|
51
55
|
- 下方 `<context-format>` 标签
|
|
56
|
+
- 下方 `<design-tree-schema>` 标签
|
|
57
|
+
|
|
58
|
+
恢复时先读取四份工件,按 design tree 的节点状态恢复,避免重复询问已关闭问题。
|
|
59
|
+
|
|
60
|
+
**完成标准**:四份工件均可读取;节点依赖无环,所有 LOG 指针存在,当前 frontier 可确定。
|
|
61
|
+
|
|
62
|
+
### 2. 查找事实
|
|
63
|
+
|
|
64
|
+
查找*事实*是 Agent 的工作,永远不是用户的。先探索相关代码、配置、接口、schema、测试、历史 ADR 和相邻实现。
|
|
52
65
|
|
|
53
|
-
|
|
66
|
+
当前沿问题需要来自环境的事实时,派遣独立探索去查找。不要阻塞等待:一次进行中的探索是一个未解决的前置条件,所以只有它下游的问题等待结果;现在就继续处理 frontier 的其余部分。不熟悉的外部技术使用 下方 `<research>` 标签。
|
|
54
67
|
|
|
55
|
-
|
|
68
|
+
将未知项分为:
|
|
56
69
|
|
|
57
|
-
|
|
70
|
+
- 可发现事实:探索或研究,不询问用户;
|
|
71
|
+
- 高影响决策:进入设计树;
|
|
72
|
+
- 低影响实现细节:记录为实现者可自行决定,不制造决策节点。
|
|
58
73
|
|
|
59
|
-
|
|
74
|
+
**完成标准**:每个候选问题已分类;用户只接收无法从环境发现的真实决策。
|
|
60
75
|
|
|
61
|
-
|
|
62
|
-
- 高影响偏好或取舍:进入访谈;
|
|
63
|
-
- 低影响实现细节:记录为实现者可自行决定,不升级为产品决策。
|
|
76
|
+
### 3. 建立设计树
|
|
64
77
|
|
|
65
|
-
|
|
78
|
+
围绕目标、角色、范围、主要流程、状态与失败、数据与接口、兼容与迁移、安全与隐私、性能与可观测性、验证与验收建立适用节点。
|
|
66
79
|
|
|
67
|
-
|
|
80
|
+
每个节点包含稳定 `D-###`、标题、问题、依赖、推荐答案和状态。只有问题本身已经可以精确陈述时才创建节点;依赖尚未确定的节点可以存在,但不进入 frontier。
|
|
68
81
|
|
|
69
|
-
|
|
82
|
+
**完成标准**:每个高影响已知决策有且只有一个节点;每条依赖指向真实上游节点;没有默默采用的高影响假设。
|
|
70
83
|
|
|
71
|
-
|
|
72
|
-
2. 提出唯一关键问题;
|
|
73
|
-
3. 给出 2–4 个真实选项、权衡和推荐默认值;
|
|
74
|
-
4. 等待用户确认、拒绝或延后;
|
|
75
|
-
5. 将结果立即追加到 `specdev/changes/{change}/LOG.md`。
|
|
84
|
+
### 4. 逐轮推进完整 frontier
|
|
76
85
|
|
|
77
|
-
|
|
86
|
+
加载 下方 `<grilling-protocol>` 标签。每轮原子增加 `round`,重读设计树并计算完整 frontier。按协议格式给每个问题编号并附推荐答案,然后等待用户回答。
|
|
78
87
|
|
|
79
|
-
|
|
88
|
+
用户回答后:
|
|
80
89
|
|
|
81
|
-
|
|
90
|
+
1. 为每个回答更新对应节点;
|
|
91
|
+
2. 每个节点各追加一条 LOG,不把多个决定压成一条;
|
|
92
|
+
3. 根据回答增加、删除或重新连接后续节点;
|
|
93
|
+
4. 重新计算 frontier,进入下一轮。
|
|
82
94
|
|
|
83
|
-
|
|
95
|
+
一个答案依赖本轮仍开放问题的提问属于后续轮次。用户延后且该决定会影响外部行为、公共接口、数据、安全、兼容、迁移或验收时,保持 blocked,不把它伪装成共识。
|
|
84
96
|
|
|
85
|
-
|
|
86
|
-
2. 再把当前仍真实的术语、不变量、示例、反例和代码映射写入 `specdev/changes/{change}/CONTEXT.md`;
|
|
87
|
-
3. 最后把满足 ADR 条件的长期架构决策写入 `specdev/changes/{change}/ADR.md`。
|
|
97
|
+
**完成标准**:本轮开始时的完整 frontier 每个节点都有回答、明确延后或阻塞记录;所有状态已原子写入并重读。
|
|
88
98
|
|
|
89
|
-
|
|
99
|
+
### 5. 同步领域模型
|
|
90
100
|
|
|
91
|
-
|
|
101
|
+
加载 下方 `<domain-modeling-rules>` 标签。每轮先写 LOG,再把已确认且当前仍真实的术语、不变量、示例、反例和代码映射同步到 CONTEXT,最后把满足 ADR 条件的长期架构决定写入 ADR。
|
|
92
102
|
|
|
93
|
-
|
|
103
|
+
历史轨迹只留在 LOG;未确认选项不写成已接受 ADR;已有 ADR 被替代时建立 supersedes 链。同步文档用于记录共识生长过程,不授权产品实现。
|
|
94
104
|
|
|
95
|
-
|
|
96
|
-
- IN、REUSE、OUT;
|
|
97
|
-
- 主要行为路径、失败行为与状态转换;
|
|
98
|
-
- 公共接口、数据、不变量、兼容和迁移影响;
|
|
99
|
-
- 安全、隐私、性能、可靠性和可观测性要求;
|
|
100
|
-
- 验证接缝和可观察验收方式;
|
|
101
|
-
- 剩余未知项及其影响。
|
|
105
|
+
**完成标准**:LOG、CONTEXT、ADR 和 design tree 无冲突;每个提升结论都有用户回答或事实来源。
|
|
102
106
|
|
|
103
|
-
|
|
107
|
+
### 6. 共识确认与路由
|
|
104
108
|
|
|
105
|
-
|
|
109
|
+
frontier 为空时,向用户确认设计树的每个分支均已走过且已经达成共识。用户指出遗漏时新增节点并继续;只有明确确认后把 design tree 标为 `consensus`。
|
|
106
110
|
|
|
107
|
-
|
|
111
|
+
随后按成熟度路由:
|
|
108
112
|
|
|
109
113
|
- 通常进入 “编写 Spec 阶段”;
|
|
110
|
-
-
|
|
111
|
-
-
|
|
114
|
+
- 外部行为已经完全明确时进入 “拆分 Tickets 阶段”;
|
|
115
|
+
- 获批的极小局部工作可进入 “实现阶段”;
|
|
112
116
|
- 路径或关键事实仍未知时进入 “寻路阶段”。
|
|
113
117
|
|
|
114
|
-
同步
|
|
115
|
-
|
|
116
|
-
不得在本 work 中自动读取实现源码并开始修改代码。
|
|
118
|
+
同步 workflow/change 状态,返回四份权威工件和下一 work 的完整路径。不自动执行下一 work。
|
|
117
119
|
|
|
118
120
|
## 完成标准
|
|
119
121
|
|
|
120
|
-
-
|
|
121
|
-
-
|
|
122
|
-
-
|
|
123
|
-
-
|
|
124
|
-
-
|
|
125
|
-
-
|
|
122
|
+
- 设计树的每个适用分支都已走过,没有高影响事项被默默假定;
|
|
123
|
+
- 每轮询问的是完整 frontier,依赖未关闭的问题没有提前出现;
|
|
124
|
+
- 可发现事实由 Agent 查找,没有转交用户;
|
|
125
|
+
- design tree 通过 schema,LOG 指针完整;
|
|
126
|
+
- CONTEXT 只包含当前领域真相,ADR 只包含满足条件的架构决定;
|
|
127
|
+
- frontier 为空且用户明确确认共识;
|
|
128
|
+
- 状态、权威工件和下一 work 路径已返回;
|
|
129
|
+
- 未执行产品实现。
|
|
126
130
|
|
|
127
131
|
## 子文件引用
|
|
128
132
|
|
|
129
|
-
-
|
|
130
|
-
-
|
|
133
|
+
- 质询协议:下方 `<grilling-protocol>` 标签
|
|
134
|
+
- 设计树模板:下方 `<design-tree-template>` 标签
|
|
135
|
+
- 领域建模:下方 `<domain-modeling-rules>` 标签
|
|
131
136
|
- ADR 格式:下方 `<adr-format>` 标签
|
|
132
|
-
-
|
|
133
|
-
-
|
|
137
|
+
- CONTEXT 格式:下方 `<context-format>` 标签
|
|
138
|
+
- LOG 格式:下方 `<log-format>` 标签
|
|
134
139
|
|
|
135
140
|
---
|
|
136
141
|
|
|
@@ -140,53 +145,49 @@
|
|
|
140
145
|
|
|
141
146
|
<grilling-protocol>
|
|
142
147
|
|
|
143
|
-
#
|
|
148
|
+
# 设计树质询协议
|
|
144
149
|
|
|
145
|
-
|
|
150
|
+
不留情面地访谈用户,直到达成共识。把这件事映射为一棵**设计树(design tree)**:每个决策都会分出挂在它下面的后续决策。
|
|
146
151
|
|
|
147
|
-
|
|
152
|
+
按**轮次**推进这棵树。**前沿(frontier)** 是所有前置条件已经确定的决策——那些你现在就能问、不必猜测还没听到的答案的问题。在一轮中问完整条前沿:给每个问题编号,并附上你的推荐答案。然后等待用户的回答,再进入下一轮。
|
|
148
153
|
|
|
149
|
-
|
|
154
|
+
每个问题按如下格式呈现:
|
|
150
155
|
|
|
151
|
-
|
|
156
|
+
```
|
|
157
|
+
❓ **Q1** - **<问题标题>**:<问题正文,可以是多个段落,包括多个选项>
|
|
152
158
|
|
|
153
|
-
|
|
159
|
+
➡️ <你的推荐答案>
|
|
160
|
+
```
|
|
154
161
|
|
|
155
|
-
|
|
156
|
-
2. 参与者、权限与主要流程;
|
|
157
|
-
3. 范围边界和明确非目标;
|
|
158
|
-
4. 状态、数据、不变量与失败模式;
|
|
159
|
-
5. 接口、兼容、迁移和发布;
|
|
160
|
-
6. 安全、隐私、性能、可观测性;
|
|
161
|
-
7. 验收与验证接缝。
|
|
162
|
+
每一轮用户的回答都会重塑这棵树——已确定的决策把前沿向外推,解除依赖它们的阻塞问题。重新计算前沿,然后问下一轮。一个答案依赖本轮仍在开放中的问题的提问,属于*更晚的*轮次,而不是本轮。
|
|
162
163
|
|
|
163
|
-
|
|
164
|
+
查找*事实*是你的工作,永远不是用户的。当前沿问题需要来自环境的事实(文件系统、工具等)时,派遣一个子 agent 去查找——不要就任何你自己能查到的东西去问用户。不要阻塞等待:一次正在进行的探索是一个未解决的前置条件,所以只有它下游的问题需要等子 agent 报告——现在就把前沿的其余部分问完。*决策*是用户的——把每个决策摆到他们面前并等待。
|
|
164
165
|
|
|
165
|
-
|
|
166
|
+
当前沿为空时,会话结束:设计树的每个分支都已走过,没有任何东西被默默假定。在用户确认我们已达成共识之前,不要对结果采取行动。
|
|
166
167
|
|
|
167
|
-
|
|
168
|
-
2. **唯一问题:** 不使用复合问题;
|
|
169
|
-
3. **可行选项:** 只列实质不同的方案;
|
|
170
|
-
4. **权衡:** 对范围、体验、架构、风险和未来成本的影响;
|
|
171
|
-
5. **推荐:** 明确给出默认建议及原因;
|
|
172
|
-
6. **用户结论:** confirmed / deferred / rejected;
|
|
173
|
-
7. **落盘:** 更新 LOG,并按需要更新 ADR 或 CONTEXT。
|
|
168
|
+
## SpecDev 持久化适配
|
|
174
169
|
|
|
175
|
-
|
|
170
|
+
- 设计树当前状态写入 `specdev/changes/{change}/design-tree.json`,结构遵循 下方 `<design-tree-schema>` 标签。
|
|
171
|
+
- 每个已回答、延后或拒绝的节点追加一条 `specdev/changes/{change}/LOG.md` 记录,并把 `LOG-###` 写回节点的 `log_ref`。
|
|
172
|
+
- 每轮开始前原子更新 `round`,重读设计树后计算 frontier:`status=open` 且全部 `depends_on` 节点为 `answered` 的节点集合。
|
|
173
|
+
- LOG、设计树及已确认的 CONTEXT/ADR 同步只用于恢复和领域建模,不构成实现授权。只有 frontier 为空且用户确认共识后才路由下游 work。
|
|
176
174
|
|
|
177
|
-
-
|
|
178
|
-
- 长期架构决策追加到 `specdev/changes/{change}/ADR.md`;
|
|
179
|
-
- 稳定领域知识追加或合并到 `specdev/changes/{change}/CONTEXT.md`;
|
|
180
|
-
- 不因追求“文档完整”而复制同一事实;工件冲突按 下方 `<artifact-contract>` 标签 裁决。
|
|
175
|
+
</grilling-protocol>
|
|
181
176
|
|
|
182
|
-
|
|
177
|
+
<design-tree-template>
|
|
183
178
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
-
|
|
179
|
+
```json
|
|
180
|
+
{
|
|
181
|
+
"schema_version": 1,
|
|
182
|
+
"artifact": "design-tree",
|
|
183
|
+
"change": "{change}",
|
|
184
|
+
"status": "active",
|
|
185
|
+
"round": 0,
|
|
186
|
+
"nodes": []
|
|
187
|
+
}
|
|
188
|
+
```
|
|
188
189
|
|
|
189
|
-
</
|
|
190
|
+
</design-tree-template>
|
|
190
191
|
|
|
191
192
|
<domain-modeling-rules>
|
|
192
193
|
|
|
@@ -277,6 +278,8 @@ CONTEXT 保存跨 change 可复用的领域语言、关系和不变量,不保
|
|
|
277
278
|
|
|
278
279
|
```markdown
|
|
279
280
|
## LOG-### — <时间> — <主题>
|
|
281
|
+
- **设计树节点:** D-### / 不适用
|
|
282
|
+
- **轮次与依赖:** round <n> / D-###, D-### / 无
|
|
280
283
|
- **状态:** confirmed / deferred / rejected / superseded
|
|
281
284
|
- **问题:** 本条只记录一个决策或未知
|
|
282
285
|
- **事实与来源:** 代码、测试、用户确认或外部规范
|
|
@@ -307,6 +310,7 @@ SpecDev 通过分层工件避免同一决策被多个模型反复重做。每个
|
|
|
307
310
|
| 分诊 | `specdev/changes/{change}/triage.md` | 请求类别、影响、风险、缺失输入和下一 work | 详细实现方案 |
|
|
308
311
|
| 诊断 | `specdev/changes/{change}/diagnosis.md` | 复现、证据、根因、修复不变量和回归契约 | 未经验证的修复实现 |
|
|
309
312
|
| 设计日志 | `specdev/changes/{change}/LOG.md` | 讨论轨迹、确认、延后、替代与废弃结论 | 当前架构权威摘要 |
|
|
313
|
+
| 设计树 | `specdev/changes/{change}/design-tree.json` | 决策节点、依赖、当前 frontier、轮次与共识状态 | 领域真相或架构决定正文 |
|
|
310
314
|
| 领域上下文 | `specdev/changes/{change}/CONTEXT.md` | 当前领域术语、语义和稳定不变量 | 临时会议记录 |
|
|
311
315
|
| 架构决策 | `specdev/changes/{change}/ADR.md` | 已接受架构决策、原因、后果和替代关系 | 尚未决定的方案集合 |
|
|
312
316
|
| Spec | `specdev/changes/{change}/spec.md` | 用户问题、外部行为、范围、验收合同、非功能要求和已锁定实现约束 | 文件级施工步骤 |
|
|
@@ -314,6 +318,10 @@ SpecDev 通过分层工件避免同一决策被多个模型反复重做。每个
|
|
|
314
318
|
| Tickets Map | `specdev/changes/{change}/tickets-map.md` | 依赖 DAG、合同覆盖、Ready 投影、并行候选和路径冲突 | 单 Ticket 的完整实现契约 |
|
|
315
319
|
| Goal Plan | `specdev/changes/{change}/goal-plan.md` | 跨 Ticket 调度、Gate、共享所有权、迁移顺序、集成和偏差治理 | 复制 Ticket 全文 |
|
|
316
320
|
| Evidence | `specdev/changes/{change}/evidence/T-NN.md` | 实际修改、命令、结果、验收映射、偏差、风险和提交引用 | 新的产品或架构决策 |
|
|
321
|
+
| Wayfinder 地图 | `specdev/changes/{change}/wayfinder-map.md` | 目的地、说明、已关闭决策索引、战争迷雾和范围之外 | 开放 Ticket 正文或答案详情 |
|
|
322
|
+
| Wayfinder Ticket | `specdev/changes/{change}/investigation/{investigation-id}.md` | 一个可精确陈述的问题、类型、阻塞和关闭状态 | 解决方案评论或交付目标 |
|
|
323
|
+
| Wayfinder solution comment | `specdev/changes/{change}/investigation/comments/{investigation-id}/NN-solution.md` | Ticket 的答案、结果事实和资产指针 | 地图索引或产品实现 |
|
|
324
|
+
| 架构审查 | `specdev/changes/{change}/architecture-review.md` 与 `specdev/changes/{change}/architecture-review.html` | 深化候选、证据、可视化、选择和访谈状态 | 未经用户选择的执行契约 |
|
|
317
325
|
|
|
318
326
|
## 2. 权威顺序
|
|
319
327
|
|
|
@@ -1027,3 +1035,44 @@ Ticket 只有同时满足以下适用条件才可设置 `ready: true`:
|
|
|
1027
1035
|
```
|
|
1028
1036
|
|
|
1029
1037
|
</change-status-schema>
|
|
1038
|
+
|
|
1039
|
+
<design-tree-schema>
|
|
1040
|
+
|
|
1041
|
+
```json
|
|
1042
|
+
{
|
|
1043
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1044
|
+
"$id": "urn:speculo:specdev:design-tree:v1",
|
|
1045
|
+
"title": "SpecDev Grilling Design Tree",
|
|
1046
|
+
"type": "object",
|
|
1047
|
+
"required": ["schema_version", "artifact", "change", "status", "round", "nodes"],
|
|
1048
|
+
"properties": {
|
|
1049
|
+
"schema_version": { "const": 1 },
|
|
1050
|
+
"artifact": { "const": "design-tree" },
|
|
1051
|
+
"change": { "type": "string", "minLength": 1 },
|
|
1052
|
+
"status": { "enum": ["active", "consensus", "blocked"] },
|
|
1053
|
+
"round": { "type": "integer", "minimum": 0 },
|
|
1054
|
+
"nodes": {
|
|
1055
|
+
"type": "array",
|
|
1056
|
+
"items": {
|
|
1057
|
+
"type": "object",
|
|
1058
|
+
"required": ["id", "title", "question", "depends_on", "recommendation", "status", "round", "answer", "log_ref"],
|
|
1059
|
+
"properties": {
|
|
1060
|
+
"id": { "type": "string", "pattern": "^D-[0-9]{3,}$" },
|
|
1061
|
+
"title": { "type": "string", "minLength": 1 },
|
|
1062
|
+
"question": { "type": "string", "minLength": 1 },
|
|
1063
|
+
"depends_on": { "type": "array", "items": { "type": "string", "pattern": "^D-[0-9]{3,}$" } },
|
|
1064
|
+
"recommendation": { "type": "string", "minLength": 1 },
|
|
1065
|
+
"status": { "enum": ["open", "answered", "deferred", "rejected"] },
|
|
1066
|
+
"round": { "type": ["integer", "null"], "minimum": 1 },
|
|
1067
|
+
"answer": { "type": ["string", "null"] },
|
|
1068
|
+
"log_ref": { "type": ["string", "null"], "pattern": "^LOG-[0-9]{3,}$" }
|
|
1069
|
+
},
|
|
1070
|
+
"additionalProperties": false
|
|
1071
|
+
}
|
|
1072
|
+
}
|
|
1073
|
+
},
|
|
1074
|
+
"additionalProperties": false
|
|
1075
|
+
}
|
|
1076
|
+
```
|
|
1077
|
+
|
|
1078
|
+
</design-tree-schema>
|
|
@@ -354,6 +354,7 @@ SpecDev 通过分层工件避免同一决策被多个模型反复重做。每个
|
|
|
354
354
|
| 分诊 | `specdev/changes/{change}/triage.md` | 请求类别、影响、风险、缺失输入和下一 work | 详细实现方案 |
|
|
355
355
|
| 诊断 | `specdev/changes/{change}/diagnosis.md` | 复现、证据、根因、修复不变量和回归契约 | 未经验证的修复实现 |
|
|
356
356
|
| 设计日志 | `specdev/changes/{change}/LOG.md` | 讨论轨迹、确认、延后、替代与废弃结论 | 当前架构权威摘要 |
|
|
357
|
+
| 设计树 | `specdev/changes/{change}/design-tree.json` | 决策节点、依赖、当前 frontier、轮次与共识状态 | 领域真相或架构决定正文 |
|
|
357
358
|
| 领域上下文 | `specdev/changes/{change}/CONTEXT.md` | 当前领域术语、语义和稳定不变量 | 临时会议记录 |
|
|
358
359
|
| 架构决策 | `specdev/changes/{change}/ADR.md` | 已接受架构决策、原因、后果和替代关系 | 尚未决定的方案集合 |
|
|
359
360
|
| Spec | `specdev/changes/{change}/spec.md` | 用户问题、外部行为、范围、验收合同、非功能要求和已锁定实现约束 | 文件级施工步骤 |
|
|
@@ -361,6 +362,10 @@ SpecDev 通过分层工件避免同一决策被多个模型反复重做。每个
|
|
|
361
362
|
| Tickets Map | `specdev/changes/{change}/tickets-map.md` | 依赖 DAG、合同覆盖、Ready 投影、并行候选和路径冲突 | 单 Ticket 的完整实现契约 |
|
|
362
363
|
| Goal Plan | `specdev/changes/{change}/goal-plan.md` | 跨 Ticket 调度、Gate、共享所有权、迁移顺序、集成和偏差治理 | 复制 Ticket 全文 |
|
|
363
364
|
| Evidence | `specdev/changes/{change}/evidence/T-NN.md` | 实际修改、命令、结果、验收映射、偏差、风险和提交引用 | 新的产品或架构决策 |
|
|
365
|
+
| Wayfinder 地图 | `specdev/changes/{change}/wayfinder-map.md` | 目的地、说明、已关闭决策索引、战争迷雾和范围之外 | 开放 Ticket 正文或答案详情 |
|
|
366
|
+
| Wayfinder Ticket | `specdev/changes/{change}/investigation/{investigation-id}.md` | 一个可精确陈述的问题、类型、阻塞和关闭状态 | 解决方案评论或交付目标 |
|
|
367
|
+
| Wayfinder solution comment | `specdev/changes/{change}/investigation/comments/{investigation-id}/NN-solution.md` | Ticket 的答案、结果事实和资产指针 | 地图索引或产品实现 |
|
|
368
|
+
| 架构审查 | `specdev/changes/{change}/architecture-review.md` 与 `specdev/changes/{change}/architecture-review.html` | 深化候选、证据、可视化、选择和访谈状态 | 未经用户选择的执行契约 |
|
|
364
369
|
|
|
365
370
|
## 2. 权威顺序
|
|
366
371
|
|
|
@@ -628,6 +628,7 @@ SpecDev 通过分层工件避免同一决策被多个模型反复重做。每个
|
|
|
628
628
|
| 分诊 | `specdev/changes/{change}/triage.md` | 请求类别、影响、风险、缺失输入和下一 work | 详细实现方案 |
|
|
629
629
|
| 诊断 | `specdev/changes/{change}/diagnosis.md` | 复现、证据、根因、修复不变量和回归契约 | 未经验证的修复实现 |
|
|
630
630
|
| 设计日志 | `specdev/changes/{change}/LOG.md` | 讨论轨迹、确认、延后、替代与废弃结论 | 当前架构权威摘要 |
|
|
631
|
+
| 设计树 | `specdev/changes/{change}/design-tree.json` | 决策节点、依赖、当前 frontier、轮次与共识状态 | 领域真相或架构决定正文 |
|
|
631
632
|
| 领域上下文 | `specdev/changes/{change}/CONTEXT.md` | 当前领域术语、语义和稳定不变量 | 临时会议记录 |
|
|
632
633
|
| 架构决策 | `specdev/changes/{change}/ADR.md` | 已接受架构决策、原因、后果和替代关系 | 尚未决定的方案集合 |
|
|
633
634
|
| Spec | `specdev/changes/{change}/spec.md` | 用户问题、外部行为、范围、验收合同、非功能要求和已锁定实现约束 | 文件级施工步骤 |
|
|
@@ -635,6 +636,10 @@ SpecDev 通过分层工件避免同一决策被多个模型反复重做。每个
|
|
|
635
636
|
| Tickets Map | `specdev/changes/{change}/tickets-map.md` | 依赖 DAG、合同覆盖、Ready 投影、并行候选和路径冲突 | 单 Ticket 的完整实现契约 |
|
|
636
637
|
| Goal Plan | `specdev/changes/{change}/goal-plan.md` | 跨 Ticket 调度、Gate、共享所有权、迁移顺序、集成和偏差治理 | 复制 Ticket 全文 |
|
|
637
638
|
| Evidence | `specdev/changes/{change}/evidence/T-NN.md` | 实际修改、命令、结果、验收映射、偏差、风险和提交引用 | 新的产品或架构决策 |
|
|
639
|
+
| Wayfinder 地图 | `specdev/changes/{change}/wayfinder-map.md` | 目的地、说明、已关闭决策索引、战争迷雾和范围之外 | 开放 Ticket 正文或答案详情 |
|
|
640
|
+
| Wayfinder Ticket | `specdev/changes/{change}/investigation/{investigation-id}.md` | 一个可精确陈述的问题、类型、阻塞和关闭状态 | 解决方案评论或交付目标 |
|
|
641
|
+
| Wayfinder solution comment | `specdev/changes/{change}/investigation/comments/{investigation-id}/NN-solution.md` | Ticket 的答案、结果事实和资产指针 | 地图索引或产品实现 |
|
|
642
|
+
| 架构审查 | `specdev/changes/{change}/architecture-review.md` 与 `specdev/changes/{change}/architecture-review.html` | 深化候选、证据、可视化、选择和访谈状态 | 未经用户选择的执行契约 |
|
|
638
643
|
|
|
639
644
|
## 2. 权威顺序
|
|
640
645
|
|