@namewta/speculo 1.0.1 → 1.0.3

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 (128) hide show
  1. package/README.md +8 -3
  2. package/package.json +2 -2
  3. package/template/AGENTS.md +14 -1
  4. package/template/canonical/canonical-specdev-goal-plan.md +758 -217
  5. package/template/canonical/canonical-specdev-grill-with-docs.md +222 -127
  6. package/template/canonical/canonical-specdev-spec.md +79 -2
  7. package/template/canonical/canonical-specdev-tickets.md +691 -255
  8. package/template/canonical/canonical-specdev-wayfinder.md +331 -107
  9. package/template/commands/archive-and-consolidate.md +1 -2
  10. package/template/commands/docs-sync.md +1 -1
  11. package/template/commands/git-repository-audit.md +4 -603
  12. package/template/commands/handoff.md +1 -1
  13. package/template/commands/references/git-repository-audit-procedure.md +608 -0
  14. package/template/commands/retro.md +1 -1
  15. package/template/commands/status.md +1 -1
  16. package/template/skills/archive-and-consolidate/SKILL.md +9 -168
  17. package/template/skills/archive-and-consolidate/references/entry-procedure.md +170 -0
  18. package/template/skills/docs-sync/SKILL.md +9 -11
  19. package/template/skills/docs-sync/references/entry-procedure.md +18 -0
  20. package/template/skills/engineering-standards-builder/SKILL.md +9 -148
  21. package/template/skills/engineering-standards-builder/references/entry-procedure.md +154 -0
  22. package/template/skills/git-history-squash/SKILL.md +9 -88
  23. package/template/skills/git-history-squash/references/entry-procedure.md +94 -0
  24. package/template/skills/github-npm-ops/SKILL.md +9 -18
  25. package/template/skills/github-npm-ops/references/entry-procedure.md +25 -0
  26. package/template/skills/optimize-codex-config/SKILL.md +12 -72
  27. package/template/skills/optimize-codex-config/references/entry-procedure.md +78 -0
  28. package/template/skills/source-code-zip/SKILL.md +10 -559
  29. package/template/skills/source-code-zip/references/entry-procedure.md +565 -0
  30. package/template/skills/speculo-retro/SKILL.md +9 -16
  31. package/template/skills/speculo-retro/references/entry-procedure.md +23 -0
  32. package/template/skills/upstream-fork-sync/SKILL.md +10 -72
  33. package/template/skills/upstream-fork-sync/references/entry-procedure.md +78 -0
  34. package/template/skills/writing-great-skills/SKILL.md +10 -72
  35. package/template/skills/writing-great-skills/references/document-contract.md +23 -0
  36. package/template/skills/writing-great-skills/references/entry-procedure.md +79 -0
  37. package/template/workflows/learning/A-archive/A-archive.md +7 -0
  38. package/template/workflows/learning/A-assess-and-plan/A-assess-and-plan.md +7 -0
  39. package/template/workflows/learning/C-consolidate/C-consolidate.md +7 -0
  40. package/template/workflows/learning/H-homework/H-homework.md +8 -1
  41. package/template/workflows/learning/I-init-setup/I-init-setup.md +7 -0
  42. package/template/workflows/learning/INDEX.md +2 -0
  43. package/template/workflows/learning/L-lesson/L-lesson.md +7 -0
  44. package/template/workflows/learning/R-review/R-review.md +8 -1
  45. package/template/workflows/learning/README.md +3 -1
  46. package/template/workflows/learning/common/rules/activation-and-memory.md +24 -0
  47. package/template/workflows/ops/A-archive-and-learn/A-archive-and-learn.md +7 -0
  48. package/template/workflows/ops/E-execute-and-stabilize/E-execute-and-stabilize.md +8 -1
  49. package/template/workflows/ops/I-intake-and-assess/I-intake-and-assess.md +7 -0
  50. package/template/workflows/ops/INDEX.md +2 -0
  51. package/template/workflows/ops/P-plan-and-approve/P-plan-and-approve.md +8 -1
  52. package/template/workflows/ops/README.md +3 -0
  53. package/template/workflows/ops/common/rules/activation-and-memory.md +24 -0
  54. package/template/workflows/person/INDEX.md +2 -0
  55. package/template/workflows/person/M-mao-zedong-cognitive-os/M-mao-zedong-cognitive-os.md +9 -0
  56. package/template/workflows/person/M-mao-zedong-cognitive-os/books/README.md +1 -1
  57. package/template/workflows/person/S-steelman-deliberation/S-steelman-deliberation.md +7 -0
  58. package/template/workflows/person/common/rules/activation-and-memory.md +24 -0
  59. package/template/workflows/specdev/A-archive-and-consolidate/A-archive-and-consolidate.md +7 -0
  60. package/template/workflows/specdev/C-code-review/C-code-review.md +7 -0
  61. package/template/workflows/specdev/D-diagnose-bugs/D-diagnose-bugs.md +7 -0
  62. package/template/workflows/specdev/G-grill-with-docs/G-grill-with-docs.md +14 -130
  63. package/template/workflows/specdev/G-grill-with-docs/references/interview-procedure.md +134 -0
  64. package/template/workflows/specdev/I-implement/I-implement.md +16 -183
  65. package/template/workflows/specdev/I-implement/evidence-template.md +12 -0
  66. package/template/workflows/specdev/I-implement/execution-preflight.md +2 -2
  67. package/template/workflows/specdev/I-implement/references/implementation-procedure.md +192 -0
  68. package/template/workflows/specdev/I-init-setup/I-init-setup.md +7 -0
  69. package/template/workflows/specdev/INDEX.md +2 -0
  70. package/template/workflows/specdev/L-learn-change/L-learn-change.md +7 -0
  71. package/template/workflows/specdev/P-goal-plan/P-goal-plan.md +29 -135
  72. package/template/workflows/specdev/P-goal-plan/completion-control.md +1 -1
  73. package/template/workflows/specdev/P-goal-plan/references/goal-lifecycle.md +35 -0
  74. package/template/workflows/specdev/P-goal-plan/references/goal-tickets-map-template.md +15 -0
  75. package/template/workflows/specdev/P-goal-plan/references/map-control.md +28 -0
  76. package/template/workflows/specdev/{O-orchestrate-implementation/O-orchestrate-implementation.md → P-goal-plan/references/multi-change-plan.md} +25 -28
  77. package/template/workflows/specdev/P-goal-plan/references/replan-and-recovery.md +21 -0
  78. package/template/workflows/specdev/P-goal-plan/references/single-change-plan.md +149 -0
  79. package/template/workflows/specdev/P-prototype/P-prototype.md +7 -0
  80. package/template/workflows/specdev/R-review-architecture/R-review-architecture.md +52 -50
  81. package/template/workflows/specdev/R-review-architecture/architecture-review-template.md +19 -10
  82. package/template/workflows/specdev/R-review-architecture/proposal-to-ticket.md +3 -1
  83. package/template/workflows/specdev/R-review-architecture/review-rubric.md +52 -0
  84. package/template/workflows/specdev/README.md +37 -214
  85. package/template/workflows/specdev/S-spec/S-spec.md +7 -0
  86. package/template/workflows/specdev/T-tickets/T-tickets.md +20 -224
  87. package/template/workflows/specdev/T-tickets/references/planning-procedure.md +233 -0
  88. package/template/workflows/specdev/T-tickets/ticket-template.md +18 -2
  89. package/template/workflows/specdev/T-tickets/tickets-map-template.md +15 -1
  90. package/template/workflows/specdev/T-triage/T-triage.md +10 -1
  91. package/template/workflows/specdev/W-wayfinder/W-wayfinder.md +25 -112
  92. package/template/workflows/specdev/W-wayfinder/references/initiative-discovery.md +29 -0
  93. package/template/workflows/specdev/W-wayfinder/references/initiative-template.json +8 -0
  94. package/template/workflows/specdev/W-wayfinder/references/map-traversal.md +120 -0
  95. package/template/workflows/specdev/W-wayfinder/wayfinder-map-template.md +4 -0
  96. package/template/workflows/specdev/common/README.md +2 -1
  97. package/template/workflows/specdev/common/rules/activation-and-memory.md +24 -0
  98. package/template/workflows/specdev/common/rules/artifact-contract.md +10 -2
  99. package/template/workflows/specdev/common/rules/operating-governance.md +38 -0
  100. package/template/workflows/specdev/common/rules/parent-implementation-orchestration.md +6 -2
  101. package/template/workflows/specdev/common/rules/skill-invocation.md +27 -0
  102. package/template/workflows/specdev/common/rules/workflow-routing.md +24 -0
  103. package/template/workflows/specdev/common/rules/workflow-state-and-lifecycle.md +93 -0
  104. package/template/workflows/specdev/common/schemas/goal-tickets-map.schema.json +33 -0
  105. package/template/workflows/specdev/common/schemas/initiative.schema.json +94 -0
  106. package/template/workflows/specdev/common/schemas/ticket.schema.json +168 -1
  107. package/template/workflows/specdev/common/schemas/tickets-map.schema.json +74 -6
  108. package/template/workflows/specdev/common/skills/code-review/SKILL.md +3 -2
  109. package/template/workflows/specdev/common/skills/code-review/references/risk-review.md +25 -0
  110. package/template/workflows/specdev/common/skills/plan-quality-review/SKILL.md +10 -0
  111. package/template/workflows/specdev/common/skills/plan-quality-review/references/checklist.md +13 -0
  112. package/template/workflows/specdev/common/skills/subagent-delivery/SKILL.md +5 -83
  113. package/template/workflows/specdev/common/skills/subagent-delivery/references/dispatch-and-accept.md +87 -0
  114. package/template/workflows/specdev/common/tools/README.md +14 -2
  115. package/template/workflows/specdev/common/tools/plan-contract.mjs +256 -0
  116. package/template/workflows/specdev/common/tools/ticket-control.mjs +251 -0
  117. package/template/workflows/specdev/common/tools/validate-specdev.mjs +58 -40
  118. package/template/workflows/specdev/manifest.json +97 -1
  119. package/template/canonical/canonical-specdev-orchestrate-implementation.md +0 -2823
  120. package/template/workflows/specdev/O-orchestrate-implementation/implementation-evidence-template.md +0 -39
  121. package/template/workflows/specdev/O-orchestrate-implementation/implementation-map-template.md +0 -50
  122. package/template/workflows/specdev/O-orchestrate-implementation/implementation-plan-template.md +0 -61
  123. package/template/workflows/specdev/R-review-architecture/architecture-report-contract.md +0 -123
  124. package/template/workflows/specdev/R-review-architecture/architecture-review-report-template.html +0 -106
  125. /package/template/workflows/specdev/{O-orchestrate-implementation/conflict-and-drift.md → P-goal-plan/references/multi-conflict-and-drift.md} +0 -0
  126. /package/template/workflows/specdev/{O-orchestrate-implementation/execution-loop.md → P-goal-plan/references/multi-execution-loop.md} +0 -0
  127. /package/template/workflows/specdev/{O-orchestrate-implementation/input-readiness.md → P-goal-plan/references/multi-input-readiness.md} +0 -0
  128. /package/template/workflows/specdev/{O-orchestrate-implementation/super-dag.md → P-goal-plan/references/multi-super-dag.md} +0 -0
@@ -1,4 +1,4 @@
1
- # 设计访谈(带文档)
1
+ # Change 决策访谈
2
2
 
3
3
  ## 网页平台运行约定
4
4
 
@@ -11,138 +11,25 @@
11
11
  - 项目代码与测试始终使用项目根相对路径;不写机器绝对路径。工件之间使用上述逻辑路径,不使用 Speculo 的运行时路径标签。
12
12
  - 如果网页平台不能直接写项目文件,则按目标文件名输出完整内容,并在答复中明确应保存的位置;不得把“无法写文件”伪装成已经持久化。
13
13
  - 若本地项目提供 Speculo Node 校验器,可运行它补充结构校验;纯网页环境按本文内联的 schema、Ready 清单和完成标准逐项核对,并明确记录未运行的自动校验。
14
+ - 本地只读 Goal 控制器和 Plan 合同校验库不随网页快照提供,不能把其名称当作可执行命令。网页执行者按内联 map-control/调用合同逐项计算依赖与门禁;缺少真实项目 Skill 源或执行能力时阻塞对应任务,不声称自动验证通过。
14
15
  - 提交、推送、合并、部署、发布、归档移动和不可逆迁移仍需用户明确授权。
15
16
 
16
- 不留情面地访谈用户,直到达成共识。把这件事映射为一棵**设计树(design tree)**:每个决策都会分出挂在它下面的后续决策。
17
-
18
- 按**轮次**推进这棵树。**前沿(frontier)** 是所有前置条件已经确定的决策——那些现在就能问、不必猜测尚未得到答案的问题。每轮询问完整 frontier;用户的答案会重塑设计树并解除下一层问题的阻塞。
19
-
20
- 本 work 只把访谈写成当前 change 的可恢复工件:设计树保存进度,LOG 保存讨论轨迹,CONTEXT 保存本 change 已确认的规范语言,ADR 保存已成为本 change 下游合同的架构决定。这些工件不等于项目永久知识,也不构成实现授权;永久 namespace 对 G 只读,只有 “归档与沉淀阶段” 能在实现证据、毕业评估和用户确认通过后执行提升。
21
-
22
- ## 输入与产物
23
-
24
- 按存在情况读取:
25
-
26
- - `specdev/config.json`
27
- - `specdev/adr/`(只读永久基线)
28
- - `specdev/context/`(只读永久基线)
29
- - `specdev/changes/{change}/source.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`
42
- - `specdev/changes/{change}/questionnaires/`,仅在第三方 stakeholder 持有阻塞答案时延迟创建。
43
-
44
- 不存在的可选输入静默跳过,不把缺失文件伪装成已知事实。
45
-
46
- ## 流程
47
-
48
- ### 1. 启动或恢复 change
49
-
50
- 创建或恢复 `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`。
51
-
52
- 分别使用:
17
+ > 激活后读取 SpecDev 的激活合同。
53
18
 
54
- - 下方 `<adr-format>` 标签
55
- - 下方 `<log-format>` 标签
56
- - 下方 `<context-format>` 标签
57
- - 下方 `<design-tree-schema>` 标签
19
+ ## 读取范围
58
20
 
59
- 恢复时先读取四份工件,按 design tree 的节点状态恢复,避免重复询问已关闭问题。
21
+ 读取 下方 `<activation-and-memory>` 标签;定位当前 change 的 `specdev/changes/{change}/design-tree.json`、`specdev/changes/{change}/LOG.md`、`specdev/changes/{change}/CONTEXT.md`、`specdev/changes/{change}/ADR.md` 和相关 initiative 决策。先找到相关条目再回读必要原文,不默认整读永久 ADR 或索引。
60
22
 
61
- **完成标准**:四份工件均可读取;节点依赖无环,所有 LOG 指针存在,当前 frontier 可确定。
23
+ ## 过程与边界
62
24
 
63
- ### 2. 查找事实
25
+ 进入访谈必须读取 下方 `<ref-g-grill-with-docs-references-interview-procedure>` 标签,再按触发分支读取 grilling、领域建模、日志格式或 stakeholder questionnaire。保留完整 frontier、推荐答案和逐轮共识检查,但不替用户回答高影响取舍。
64
26
 
65
- 查找*事实*是 Agent 的工作,永远不是用户的。先探索相关代码、配置、接口、schema、测试、历史 ADR 和相邻实现。
27
+ - 先查仓库可发现事实,只询问会改变行为、架构、风险、范围、迁移或验收的决定。
28
+ - W 的每个 materialized change 在自己的目录拥有设计树和文档;共享答案以来源指针引用,不能共用一棵可写设计树。
29
+ - 当前 change 的 LOG/CONTEXT/ADR 可按 Work 授权写入;永久 namespace 对 G 只读,正式知识只能经 A 的原有写入网关提升。
30
+ - 没有未决的高影响决定且证据可定位才标记共识;无法回答时只暂停相关分支,返回明确问题和恢复入口。
66
31
 
67
- 当前沿问题需要来自环境的事实时,派遣独立探索去查找。不要阻塞等待:一次进行中的探索是一个未解决的前置条件,所以只有它下游的问题等待结果;现在就继续处理 frontier 的其余部分。不熟悉的外部技术使用 下方 `<research>` 标签。
68
-
69
- 将未知项分为:
70
-
71
- - 可发现事实:探索或研究,不询问用户;
72
- - 高影响决策:进入设计树;
73
- - 低影响实现细节:记录为实现者可自行决定,不制造决策节点。
74
-
75
- 阻塞答案既不可发现、当前用户也无法回答、但另一个明确 stakeholder 掌握时,加载 下方 `<stakeholder-questionnaire>` 标签,生成问卷并保存恢复条件;不在本轮继续猜测该分支。
76
-
77
- **完成标准**:每个候选问题已分类;用户只接收无法从环境发现的真实决策。
78
-
79
- ### 3. 建立设计树
80
-
81
- 围绕目标、角色、范围、主要流程、状态与失败、数据与接口、兼容与迁移、安全与隐私、性能与可观测性、验证与验收建立适用节点。
82
-
83
- 每个节点包含稳定 `D-###`、标题、问题、依赖、推荐答案和状态。只有问题本身已经可以精确陈述时才创建节点;依赖尚未确定的节点可以存在,但不进入 frontier。
84
-
85
- **完成标准**:每个高影响已知决策有且只有一个节点;每条依赖指向真实上游节点;没有默默采用的高影响假设。
86
-
87
- ### 4. 逐轮推进完整 frontier
88
-
89
- 加载 下方 `<grilling-protocol>` 标签。每轮原子增加 `round`,重读设计树并计算完整 frontier。按协议格式给每个问题编号并附推荐答案,然后等待用户回答。
90
-
91
- 用户回答后:
92
-
93
- 1. 为每个回答更新对应节点;
94
- 2. 每个节点各追加一条 LOG,不把多个决定压成一条;
95
- 3. 根据回答增加、删除或重新连接后续节点;
96
- 4. 重新计算 frontier,进入下一轮。
97
-
98
- 一个答案依赖本轮仍开放问题的提问属于后续轮次。用户延后且该决定会影响外部行为、公共接口、数据、安全、兼容、迁移或验收时,保持 blocked,不把它伪装成共识。
99
-
100
- **完成标准**:本轮开始时的完整 frontier 每个节点都有回答、明确延后或阻塞记录;所有状态已原子写入并重读。
101
-
102
- ### 5. 同步 change-local 领域模型
103
-
104
- 加载 下方 `<domain-modeling-rules>` 标签。每轮先写 LOG,再把已确认且本 change 下游必须使用的项目规范术语同步到 change CONTEXT,最后把同时满足三个准入条件、已成为本 change 合同的架构决定写入 change ADR。
105
-
106
- 历史轨迹只留在 LOG;未确认选项不写成已接受 ADR;已有 change ADR 被替代时建立 supersedes 链。同步只更新本 change 工件,不创建、合并或改写永久 `context/`、`adr/`;它记录共识生长过程,不授权产品实现。
107
-
108
- **完成标准**:LOG、CONTEXT、ADR 和 design tree 无冲突;每个同步结论都有用户回答或事实来源;永久 namespace 未被修改。
109
-
110
- ### 6. 共识确认与路由
111
-
112
- frontier 为空时,向用户确认设计树的每个分支均已走过且已经达成共识。用户指出遗漏时新增节点并继续;只有明确确认后把 design tree 标为 `consensus`。
113
-
114
- 路由前使用 Speculo Node 校验器 的 `--stage grill` 校验当前 change;失败时保持本 Work 可恢复状态,不发布共识。
115
-
116
- 随后按成熟度路由:
117
-
118
- - 通常进入 “编写 Spec 阶段”;
119
- - 外部行为已经完全明确时进入 “拆分 Tickets 阶段”;
120
- - 获批的极小局部工作可进入 “实现阶段”;
121
- - 路径或关键事实仍未知时进入 “寻路阶段”。
122
-
123
- 同步 workflow/change 状态,返回四份权威工件和下一 work 的完整路径。不自动执行下一 work。
124
-
125
- ## 完成标准
126
-
127
- - 设计树的每个适用分支都已走过,没有高影响事项被默默假定;
128
- - 每轮询问的是完整 frontier,依赖未关闭的问题没有提前出现;
129
- - 可发现事实由 Agent 查找,没有转交用户;
130
- - design tree 通过 schema,LOG 指针完整;
131
- - CONTEXT 只包含当前 change 已确认的规范语言,ADR 只包含满足条件且已成为本 change 合同的架构决定;
132
- - 永久 `context/`、`adr/` 保持只读,未在 G 中执行知识提升;
133
- - frontier 为空且用户明确确认共识;
134
- - 状态、权威工件和下一 work 路径已返回;
135
- - 未执行产品实现。
136
-
137
- ## 子文件引用
138
-
139
- - 质询协议:下方 `<grilling-protocol>` 标签
140
- - 设计树模板:下方 `<design-tree-template>` 标签
141
- - 领域建模:下方 `<domain-modeling-rules>` 标签
142
- - ADR 格式:下方 `<adr-format>` 标签
143
- - CONTEXT 格式:下方 `<context-format>` 标签
144
- - LOG 格式:下方 `<log-format>` 标签
145
- - Stakeholder 问卷:下方 `<stakeholder-questionnaire>` 标签
32
+ 完成后使用 Speculo Node 校验器 `--stage grill`,回读四个真实源工件,再交给 “编写 Spec 阶段”;若属于 W 调查票,只关闭本票并返回探索地图。
146
33
 
147
34
  ---
148
35
 
@@ -372,7 +259,7 @@ SpecDev 通过分层工件避免同一决策被多个模型反复重做。每个
372
259
  | Change 架构决策 | `specdev/changes/{change}/ADR.md` | 已成为本 change 下游合同的架构决策、原因、后果和替代关系 | 永久项目 ADR 或尚未决定的方案集合 |
373
260
  | Spec | `specdev/changes/{change}/spec.md` | 用户问题、外部行为、范围、验收合同、非功能要求和已锁定实现约束 | 文件级施工步骤 |
374
261
  | Ticket | `specdev/changes/{change}/ticket/NN-<ticket-name>.md` | 单一垂直切片的行为、决策、范围、路径所有权、执行路线和验证证据 | 跨 Ticket 里程碑治理 |
375
- | Tickets Map | `specdev/changes/{change}/tickets-map.md` | 总体实施背景、项目 Skill 最低读取路由、依赖 DAG、合同覆盖、Ready 投影、并行候选和路径冲突 | 单 Ticket 的完整实现契约 |
262
+ | Tickets Map | `specdev/changes/{change}/tickets-map.md` | 总体实施背景、项目 Skill 最低调用路由、依赖 DAG、合同覆盖、Ready 投影、并行候选和路径冲突 | 单 Ticket 的完整实现契约 |
376
263
  | Goal Plan | `specdev/changes/{change}/goal-plan.md` | 跨 Ticket 调度、Gate、共享所有权、迁移顺序、集成和偏差治理 | 复制 Ticket 全文 |
377
264
  | Implementation Map | `specdev/changes/{change}/implementation-map.md` | Ready 成员、组合 Ticket inventory、跨 change dependency/serialization 与 revision | 创建或改写子 Spec、Ticket 或实现细节 |
378
265
  | Implementation Plan | `specdev/changes/{change}/implementation-plan.md` | 父 Lead、全局 workspace/实现上限、frontier/Wave/locks/integration queue 和可恢复进度投影 | 改写子 change 权威或伪造完成 |
@@ -385,7 +272,7 @@ SpecDev 通过分层工件避免同一决策被多个模型反复重做。每个
385
272
  | Wayfinder 地图 | `specdev/changes/{change}/wayfinder-map.md` | 目的地、说明、已关闭决策索引、战争迷雾和范围之外 | 开放 Ticket 正文或答案详情 |
386
273
  | Wayfinder Ticket | `specdev/changes/{change}/investigation/{investigation-id}.md` | 一个可精确陈述的问题、类型、阻塞和关闭状态 | 解决方案评论或交付目标 |
387
274
  | Wayfinder solution comment | `specdev/changes/{change}/investigation/comments/{investigation-id}/NN-solution.md` | Ticket 的答案、结果事实和资产指针 | 地图索引或产品实现 |
388
- | 架构审查 | `specdev/changes/{change}/architecture-review.md` `specdev/changes/{change}/architecture-review.html` | 深化候选、证据、可视化、选择和访谈状态 | 未经用户选择的执行契约 |
275
+ | 架构审查 | `specdev/changes/{change}/architecture-review.md` | 结构性候选、code-judo 机会、证据、选择和访谈状态 | 未经用户选择的执行契约 |
389
276
 
390
277
  UI 设计包中的 `{design-id}` 由 P-prototype 分配为当前 change 内最小未占用的 `UI-NNN`;设计系统文档是唯一设计权威,comparison 与 final 不建立第二套规则。
391
278
 
@@ -436,6 +323,14 @@ Change CONTEXT/ADR 是 active change 内的执行权威,不是 workflow 级永
436
323
 
437
324
  不得仅在下游工件中覆盖上游权威。
438
325
 
326
+ ## 5. Initiative 与计划调用扩展
327
+
328
+ W 的 `specdev/changes/{change}/initiative.json` 只拥有候选 change 的边界、未知、依赖和目标指针;每个物化 child 的 Grill、Spec、Ticket 和状态仍独立。候选图不是实施 DAG,也不是共享可写设计树。
329
+
330
+ 新 Ticket/普通 Map 保持原 schema_version,并使用 plan_contract_version: 1 扩展。Ticket 拥有经过核实的 Skill 调用绑定、语义资源和执行计划;Map 路由是其投影。规则为 下方 `<ref-common-rules-skill-invocation>` 标签。计划、产物数量与完成证据漂移必须由对应 owner 修订;不能仅改 map 状态。
331
+
332
+ 父 `specdev/changes/{change}/tickets-map.md` 是 goal-tickets-map 无状态入口,只引用现有 Implementation Map/Plan;它不能拥有第二份 status、owner 或任务清单。统一 P 拥有生命周期,旧 O 仅保留入口与恢复键。
333
+
439
334
  </artifact-contract>
440
335
 
441
336
  <planning-principles>
@@ -1078,3 +973,203 @@ Ticket 只有同时满足以下适用条件才可设置 `ready: true`:
1078
973
  ```
1079
974
 
1080
975
  </design-tree-schema>
976
+
977
+ <activation-and-memory>
978
+
979
+ # Activation and memory retrieval protocol
980
+
981
+ 本规则只在用户明确激活当前 workflow 或某个 Work 后读取。INDEX 只用于被动发现,不初始化状态、不读取 active change、不写入知识。
982
+
983
+ ## Locate before read
984
+
985
+ 1. 先解析当前 workflow 的 roots、状态索引和稳定 ID;不存在时静默跳过,不能凭旧路径猜测。
986
+ 2. 根据当前请求、Work 分支、关键词、稳定 ID、状态和 provenance,先搜索相关索引行或目录项,再定位最小相关 entry;不把索引全文默认装入上下文。
987
+ 3. 只回读命中的 entry 和直接 provenance;需要恢复、冲突裁决、归档、迁移或执行安全证明时,才读取该阶段声明的完整证据集合。
988
+ 4. 没有匹配证据时返回缺失证据并停止依赖该结论的分支,不补造事实。
989
+
990
+ ## Memory writes
991
+
992
+ 正式知识、永久 context、synthesis 或 archive 写入前,先解析唯一 owner 与 gateway,检查 pending transaction、lock、未完成 promotion 和 recovery evidence。gateway 不明或事务未闭合时,只阻塞记忆写入,继续独立且已授权的审计、定位、验证和其他工作。
993
+
994
+ 每次写入必须记录 source IDs、证据定位、验证时间或 digest;写入后定位受影响索引项并重新读取目标 entry,确认 owner、locator、内容和状态投影一致。原始证据不可被派生视图覆盖。
995
+
996
+ ## Read budget
997
+
998
+ 当前 Work 的权威状态、schema、Map/Plan、当前输入和直接所有权合同可以完整读取;非当前分支的知识树、历史 change、研究库、项目 Skill 和示例只按索引与关键词读取。执行、冲突、恢复和归档 Work 需要完整证据时,以该 Work 的显式合同为准。
999
+
1000
+ ## 事务与归属隔离
1001
+
1002
+ 启动正式写入前检查原网关未闭合事务与写集。属于本任务的事务按原恢复协议处理;属于其他任务的事务不得接管、解锁、清空或覆盖。只暂停资源重叠的写入与依赖分支,继续独立、已授权工作;事务年龄不构成接管授权。写后按变更 ID 定位受影响的索引项并回读目标原文,不为核验默认整读整库。
1003
+
1004
+ </activation-and-memory>
1005
+
1006
+ <ref-g-grill-with-docs-references-interview-procedure>
1007
+
1008
+ # 设计访谈(带文档)
1009
+
1010
+
1011
+ 不留情面地访谈用户,直到达成共识。把这件事映射为一棵**设计树(design tree)**:每个决策都会分出挂在它下面的后续决策。
1012
+
1013
+ 按**轮次**推进这棵树。**前沿(frontier)** 是所有前置条件已经确定的决策——那些现在就能问、不必猜测尚未得到答案的问题。每轮询问完整 frontier;用户的答案会重塑设计树并解除下一层问题的阻塞。
1014
+
1015
+ 本 work 只把访谈写成当前 change 的可恢复工件:设计树保存进度,LOG 保存讨论轨迹,CONTEXT 保存本 change 已确认的规范语言,ADR 保存已成为本 change 下游合同的架构决定。这些工件不等于项目永久知识,也不构成实现授权;永久 namespace 对 G 只读,只有 “归档与沉淀阶段” 能在实现证据、毕业评估和用户确认通过后执行提升。
1016
+
1017
+
1018
+ ## 输入与产物
1019
+
1020
+ 按存在情况读取:
1021
+
1022
+ - `specdev/config.json`
1023
+ - `specdev/adr/`(只读永久基线)
1024
+ - `specdev/context/`(只读永久基线)
1025
+ - `specdev/changes/{change}/source.md`
1026
+ - `specdev/changes/{change}/triage.md`
1027
+ - `specdev/changes/{change}/diagnosis.md`
1028
+ - `specdev/changes/{change}/spec.md`
1029
+ - 下方 `<artifact-contract>` 标签
1030
+ - 下方 `<planning-principles>` 标签
1031
+
1032
+ 本 work 拥有:
1033
+
1034
+ - `specdev/changes/{change}/design-tree.json`
1035
+ - `specdev/changes/{change}/LOG.md`
1036
+ - `specdev/changes/{change}/CONTEXT.md`
1037
+ - `specdev/changes/{change}/ADR.md`
1038
+ - `specdev/changes/{change}/questionnaires/`,仅在第三方 stakeholder 持有阻塞答案时延迟创建。
1039
+
1040
+ 不存在的可选输入静默跳过,不把缺失文件伪装成已知事实。
1041
+
1042
+ ## 流程
1043
+
1044
+ ### 1. 启动或恢复 change
1045
+
1046
+ 创建或恢复 `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`。
1047
+
1048
+ 分别使用:
1049
+
1050
+ - 下方 `<adr-format>` 标签
1051
+ - 下方 `<log-format>` 标签
1052
+ - 下方 `<context-format>` 标签
1053
+ - 下方 `<design-tree-schema>` 标签
1054
+
1055
+ 恢复时先读取四份工件,按 design tree 的节点状态恢复,避免重复询问已关闭问题。
1056
+
1057
+ **完成标准**:四份工件均可读取;节点依赖无环,所有 LOG 指针存在,当前 frontier 可确定。
1058
+
1059
+ ### 2. 查找事实
1060
+
1061
+ 查找*事实*是 Agent 的工作,永远不是用户的。先探索相关代码、配置、接口、schema、测试、历史 ADR 和相邻实现。
1062
+
1063
+ 当前沿问题需要来自环境的事实时,派遣独立探索去查找。不要阻塞等待:一次进行中的探索是一个未解决的前置条件,所以只有它下游的问题等待结果;现在就继续处理 frontier 的其余部分。不熟悉的外部技术使用 下方 `<research>` 标签。
1064
+
1065
+ 将未知项分为:
1066
+
1067
+ - 可发现事实:探索或研究,不询问用户;
1068
+ - 高影响决策:进入设计树;
1069
+ - 低影响实现细节:记录为实现者可自行决定,不制造决策节点。
1070
+
1071
+ 阻塞答案既不可发现、当前用户也无法回答、但另一个明确 stakeholder 掌握时,加载 下方 `<stakeholder-questionnaire>` 标签,生成问卷并保存恢复条件;不在本轮继续猜测该分支。
1072
+
1073
+ **完成标准**:每个候选问题已分类;用户只接收无法从环境发现的真实决策。
1074
+
1075
+ ### 3. 建立设计树
1076
+
1077
+ 围绕目标、角色、范围、主要流程、状态与失败、数据与接口、兼容与迁移、安全与隐私、性能与可观测性、验证与验收建立适用节点。
1078
+
1079
+ 每个节点包含稳定 `D-###`、标题、问题、依赖、推荐答案和状态。只有问题本身已经可以精确陈述时才创建节点;依赖尚未确定的节点可以存在,但不进入 frontier。
1080
+
1081
+ **完成标准**:每个高影响已知决策有且只有一个节点;每条依赖指向真实上游节点;没有默默采用的高影响假设。
1082
+
1083
+ ### 4. 逐轮推进完整 frontier
1084
+
1085
+ 加载 下方 `<grilling-protocol>` 标签。每轮原子增加 `round`,重读设计树并计算完整 frontier。按协议格式给每个问题编号并附推荐答案,然后等待用户回答。
1086
+
1087
+ 用户回答后:
1088
+
1089
+ 1. 为每个回答更新对应节点;
1090
+ 2. 每个节点各追加一条 LOG,不把多个决定压成一条;
1091
+ 3. 根据回答增加、删除或重新连接后续节点;
1092
+ 4. 重新计算 frontier,进入下一轮。
1093
+
1094
+ 一个答案依赖本轮仍开放问题的提问属于后续轮次。用户延后且该决定会影响外部行为、公共接口、数据、安全、兼容、迁移或验收时,保持 blocked,不把它伪装成共识。
1095
+
1096
+ **完成标准**:本轮开始时的完整 frontier 每个节点都有回答、明确延后或阻塞记录;所有状态已原子写入并重读。
1097
+
1098
+ ### 5. 同步 change-local 领域模型
1099
+
1100
+ 加载 下方 `<domain-modeling-rules>` 标签。每轮先写 LOG,再把已确认且本 change 下游必须使用的项目规范术语同步到 change CONTEXT,最后把同时满足三个准入条件、已成为本 change 合同的架构决定写入 change ADR。
1101
+
1102
+ 历史轨迹只留在 LOG;未确认选项不写成已接受 ADR;已有 change ADR 被替代时建立 supersedes 链。同步只更新本 change 工件,不创建、合并或改写永久 `context/`、`adr/`;它记录共识生长过程,不授权产品实现。
1103
+
1104
+ **完成标准**:LOG、CONTEXT、ADR 和 design tree 无冲突;每个同步结论都有用户回答或事实来源;永久 namespace 未被修改。
1105
+
1106
+ ### 6. 共识确认与路由
1107
+
1108
+ frontier 为空时,向用户确认设计树的每个分支均已走过且已经达成共识。用户指出遗漏时新增节点并继续;只有明确确认后把 design tree 标为 `consensus`。
1109
+
1110
+ 路由前使用 Speculo Node 校验器 的 `--stage grill` 校验当前 change;失败时保持本 Work 可恢复状态,不发布共识。
1111
+
1112
+ 随后按成熟度路由:
1113
+
1114
+ - 通常进入 “编写 Spec 阶段”;
1115
+ - 外部行为已经完全明确时进入 “拆分 Tickets 阶段”;
1116
+ - 获批的极小局部工作可进入 “实现阶段”;
1117
+ - 路径或关键事实仍未知时进入 “寻路阶段”。
1118
+
1119
+ 同步 workflow/change 状态,返回四份权威工件和下一 work 的完整路径。不自动执行下一 work。
1120
+
1121
+ ## 完成标准
1122
+
1123
+ - 设计树的每个适用分支都已走过,没有高影响事项被默默假定;
1124
+ - 每轮询问的是完整 frontier,依赖未关闭的问题没有提前出现;
1125
+ - 可发现事实由 Agent 查找,没有转交用户;
1126
+ - design tree 通过 schema,LOG 指针完整;
1127
+ - CONTEXT 只包含当前 change 已确认的规范语言,ADR 只包含满足条件且已成为本 change 合同的架构决定;
1128
+ - 永久 `context/`、`adr/` 保持只读,未在 G 中执行知识提升;
1129
+ - frontier 为空且用户明确确认共识;
1130
+ - 状态、权威工件和下一 work 路径已返回;
1131
+ - 未执行产品实现。
1132
+
1133
+ ## 子文件引用
1134
+
1135
+ - 质询协议:下方 `<grilling-protocol>` 标签
1136
+ - 设计树模板:下方 `<design-tree-template>` 标签
1137
+ - 领域建模:下方 `<domain-modeling-rules>` 标签
1138
+ - ADR 格式:下方 `<adr-format>` 标签
1139
+ - CONTEXT 格式:下方 `<context-format>` 标签
1140
+ - LOG 格式:下方 `<log-format>` 标签
1141
+ - Stakeholder 问卷:下方 `<stakeholder-questionnaire>` 标签
1142
+
1143
+ </ref-g-grill-with-docs-references-interview-procedure>
1144
+
1145
+ <ref-common-rules-skill-invocation>
1146
+
1147
+ # 可验证的 Skill 调用契约
1148
+
1149
+ 本规则用于 T 规划、P 调度和 I 执行。Map 维护最低读取路由;每票 `skill_bindings` 才定义本票调用,二者不得互相代替。
1150
+
1151
+ ## 定位与绑定
1152
+
1153
+ 1. 从项目 Agent 指令解析真实 Skill 根,先枚举元数据和触发条件,再读取命中入口及当前阶段要求的参考;不整读所有 Skills。
1154
+ 2. 保留逻辑路径、解析真实源,检查不存在的路径、越界软链接、缓存和入口 `name`。默认不使用插件缓存或 node_modules 充当项目可维护源;用户维护的项目内软链接保持原状。仓库外技能需要先取得明确源域授权并由项目网关处理,控制器不会自行扩大根目录。
1155
+ 3. 每个绑定必须包含真实 `id`(SKILL 的 name)、项目根相对路径 `path`、入口字节 `sha256`、`phase`(plan/implement/verify)、`operation`、非空 `inputs`、`outputs`、`required` 与 `on_failure`。引用较长参考时在 references 字段 中记录明确 Path、sha256 与 `when`;相关参考在调用前按条件回读。
1156
+ 4. 必需绑定失败固定为 `block-ticket`;可选绑定只有说明 `condition` 与不适用原因才允许 `report-and-continue`。可选标记不能覆盖用户要求或技能自身硬门禁。
1157
+ 5. 在模板 frontmatter 中,数组对象用单行 JSON;不使用自定义 YAML 对象语法。缺失 Skill、摘要漂移、占位符或入口 ID 不符,票不得进入 ready。没有适用项目 Skill 时 `skill_bindings: []`,`skill_scan` 必须写真实扫描范围与不适用理由,Map 同步无适用项。
1158
+
1159
+ ## 示例形状(生成真实票时全部替换)
1160
+
1161
+ ```json
1162
+ {"id":"project-test","path":".agents/skills/project-test/SKILL.md","sha256":"<真实64位摘要>","phase":"verify","operation":"run-regression","inputs":["当前Ticket与定向diff"],"outputs":["含命令、退出码和验收映射的Evidence"],"required":true,"on_failure":"block-ticket","references":[]}
1163
+ ```
1164
+
1165
+ 此示例不是项目已存在的 Skill,不得复制为可执行绑定。SpecDev 自带技能在 Work 中按明确 Path 调用,不能伪装为项目 Skill。
1166
+
1167
+ ## 执行证据
1168
+
1169
+ 到相应阶段后,实际调用宿主能力或执行该 Skill 明确的步骤。记录技能 ID、phase、operation、所用摘要、输入定位、执行轨迹、输出与结果。仅展示 `@skill`、复制入口、声明“已读”都不是完成证据。
1170
+
1171
+ 新版票 done 前,在本票 `specdev/changes/{change}/evidence/T-NN.md` 增加 `## Skill Execution Records`,紧接一个 JSON 数组代码块。每项有 `id`、`phase`、`operation`、`sha256`、`status`(passed/failed/skipped)、非空 `evidence` 字符串数组。required 项必须 passed;验证器只能检查记录结构与摘要一致,Lead 仍需回读真实工具/过程证据,不能把结构通过称为宿主调用已经被认证。
1172
+
1173
+ 摘要变更先由 Lead 检查影响、更新绑定和 map 后重验;不自动接受最新文件,不回写已完成旧证据。
1174
+
1175
+ </ref-common-rules-skill-invocation>
@@ -11,12 +11,20 @@
11
11
  - 项目代码与测试始终使用项目根相对路径;不写机器绝对路径。工件之间使用上述逻辑路径,不使用 Speculo 的运行时路径标签。
12
12
  - 如果网页平台不能直接写项目文件,则按目标文件名输出完整内容,并在答复中明确应保存的位置;不得把“无法写文件”伪装成已经持久化。
13
13
  - 若本地项目提供 Speculo Node 校验器,可运行它补充结构校验;纯网页环境按本文内联的 schema、Ready 清单和完成标准逐项核对,并明确记录未运行的自动校验。
14
+ - 本地只读 Goal 控制器和 Plan 合同校验库不随网页快照提供,不能把其名称当作可执行命令。网页执行者按内联 map-control/调用合同逐项计算依赖与门禁;缺少真实项目 Skill 源或执行能力时阻塞对应任务,不声称自动验证通过。
14
15
  - 提交、推送、合并、部署、发布、归档移动和不可逆迁移仍需用户明确授权。
15
16
 
16
17
  本 work 以“综合已有上下文”为主,不启动宽泛访谈。它保留原有的代码库探索、领域词汇、ADR 约束、测试接缝设计和用户确认能力,但将确认限制为真正影响外部行为或验证的高价值问题。
17
18
 
18
19
  Spec 决定“为什么、为谁、系统应表现为何”。它可以锁定影响公共接口、数据、兼容、安全或验收的实现约束,但不写逐文件施工计划。
19
20
 
21
+ ## 读取范围
22
+
23
+ 1. 先读取 SpecDev 的激活合同 与当前 Work 的状态入口。
24
+ 2. 再读取 下方 `<activation-and-memory>` 标签,按当前分支、状态和关键词定位最小相关工件。
25
+ 3. 只在本 Work 明确要求恢复、冲突、执行安全或归档证据时扩展为全量读取;缺少匹配证据或 owner/gateway 时停止受影响分支。
26
+
27
+
20
28
  ## 输入
21
29
 
22
30
  按存在情况读取:
@@ -363,7 +371,7 @@ SpecDev 通过分层工件避免同一决策被多个模型反复重做。每个
363
371
  | Change 架构决策 | `specdev/changes/{change}/ADR.md` | 已成为本 change 下游合同的架构决策、原因、后果和替代关系 | 永久项目 ADR 或尚未决定的方案集合 |
364
372
  | Spec | `specdev/changes/{change}/spec.md` | 用户问题、外部行为、范围、验收合同、非功能要求和已锁定实现约束 | 文件级施工步骤 |
365
373
  | Ticket | `specdev/changes/{change}/ticket/NN-<ticket-name>.md` | 单一垂直切片的行为、决策、范围、路径所有权、执行路线和验证证据 | 跨 Ticket 里程碑治理 |
366
- | Tickets Map | `specdev/changes/{change}/tickets-map.md` | 总体实施背景、项目 Skill 最低读取路由、依赖 DAG、合同覆盖、Ready 投影、并行候选和路径冲突 | 单 Ticket 的完整实现契约 |
374
+ | Tickets Map | `specdev/changes/{change}/tickets-map.md` | 总体实施背景、项目 Skill 最低调用路由、依赖 DAG、合同覆盖、Ready 投影、并行候选和路径冲突 | 单 Ticket 的完整实现契约 |
367
375
  | Goal Plan | `specdev/changes/{change}/goal-plan.md` | 跨 Ticket 调度、Gate、共享所有权、迁移顺序、集成和偏差治理 | 复制 Ticket 全文 |
368
376
  | Implementation Map | `specdev/changes/{change}/implementation-map.md` | Ready 成员、组合 Ticket inventory、跨 change dependency/serialization 与 revision | 创建或改写子 Spec、Ticket 或实现细节 |
369
377
  | Implementation Plan | `specdev/changes/{change}/implementation-plan.md` | 父 Lead、全局 workspace/实现上限、frontier/Wave/locks/integration queue 和可恢复进度投影 | 改写子 change 权威或伪造完成 |
@@ -376,7 +384,7 @@ SpecDev 通过分层工件避免同一决策被多个模型反复重做。每个
376
384
  | Wayfinder 地图 | `specdev/changes/{change}/wayfinder-map.md` | 目的地、说明、已关闭决策索引、战争迷雾和范围之外 | 开放 Ticket 正文或答案详情 |
377
385
  | Wayfinder Ticket | `specdev/changes/{change}/investigation/{investigation-id}.md` | 一个可精确陈述的问题、类型、阻塞和关闭状态 | 解决方案评论或交付目标 |
378
386
  | Wayfinder solution comment | `specdev/changes/{change}/investigation/comments/{investigation-id}/NN-solution.md` | Ticket 的答案、结果事实和资产指针 | 地图索引或产品实现 |
379
- | 架构审查 | `specdev/changes/{change}/architecture-review.md` `specdev/changes/{change}/architecture-review.html` | 深化候选、证据、可视化、选择和访谈状态 | 未经用户选择的执行契约 |
387
+ | 架构审查 | `specdev/changes/{change}/architecture-review.md` | 结构性候选、code-judo 机会、证据、选择和访谈状态 | 未经用户选择的执行契约 |
380
388
 
381
389
  UI 设计包中的 `{design-id}` 由 P-prototype 分配为当前 change 内最小未占用的 `UI-NNN`;设计系统文档是唯一设计权威,comparison 与 final 不建立第二套规则。
382
390
 
@@ -427,6 +435,14 @@ Change CONTEXT/ADR 是 active change 内的执行权威,不是 workflow 级永
427
435
 
428
436
  不得仅在下游工件中覆盖上游权威。
429
437
 
438
+ ## 5. Initiative 与计划调用扩展
439
+
440
+ W 的 `specdev/changes/{change}/initiative.json` 只拥有候选 change 的边界、未知、依赖和目标指针;每个物化 child 的 Grill、Spec、Ticket 和状态仍独立。候选图不是实施 DAG,也不是共享可写设计树。
441
+
442
+ 新 Ticket/普通 Map 保持原 schema_version,并使用 plan_contract_version: 1 扩展。Ticket 拥有经过核实的 Skill 调用绑定、语义资源和执行计划;Map 路由是其投影。规则为 下方 `<ref-common-rules-skill-invocation>` 标签。计划、产物数量与完成证据漂移必须由对应 owner 修订;不能仅改 map 状态。
443
+
444
+ 父 `specdev/changes/{change}/tickets-map.md` 是 goal-tickets-map 无状态入口,只引用现有 Implementation Map/Plan;它不能拥有第二份 status、owner 或任务清单。统一 P 拥有生命周期,旧 O 仅保留入口与恢复键。
445
+
430
446
  </artifact-contract>
431
447
 
432
448
  <readiness-and-depth>
@@ -1047,3 +1063,64 @@ Direct Spec Evidence 至少包含:用户批准与轻量合同、Lead、实施
1047
1063
  ```
1048
1064
 
1049
1065
  </spec-schema>
1066
+
1067
+ <activation-and-memory>
1068
+
1069
+ # Activation and memory retrieval protocol
1070
+
1071
+ 本规则只在用户明确激活当前 workflow 或某个 Work 后读取。INDEX 只用于被动发现,不初始化状态、不读取 active change、不写入知识。
1072
+
1073
+ ## Locate before read
1074
+
1075
+ 1. 先解析当前 workflow 的 roots、状态索引和稳定 ID;不存在时静默跳过,不能凭旧路径猜测。
1076
+ 2. 根据当前请求、Work 分支、关键词、稳定 ID、状态和 provenance,先搜索相关索引行或目录项,再定位最小相关 entry;不把索引全文默认装入上下文。
1077
+ 3. 只回读命中的 entry 和直接 provenance;需要恢复、冲突裁决、归档、迁移或执行安全证明时,才读取该阶段声明的完整证据集合。
1078
+ 4. 没有匹配证据时返回缺失证据并停止依赖该结论的分支,不补造事实。
1079
+
1080
+ ## Memory writes
1081
+
1082
+ 正式知识、永久 context、synthesis 或 archive 写入前,先解析唯一 owner 与 gateway,检查 pending transaction、lock、未完成 promotion 和 recovery evidence。gateway 不明或事务未闭合时,只阻塞记忆写入,继续独立且已授权的审计、定位、验证和其他工作。
1083
+
1084
+ 每次写入必须记录 source IDs、证据定位、验证时间或 digest;写入后定位受影响索引项并重新读取目标 entry,确认 owner、locator、内容和状态投影一致。原始证据不可被派生视图覆盖。
1085
+
1086
+ ## Read budget
1087
+
1088
+ 当前 Work 的权威状态、schema、Map/Plan、当前输入和直接所有权合同可以完整读取;非当前分支的知识树、历史 change、研究库、项目 Skill 和示例只按索引与关键词读取。执行、冲突、恢复和归档 Work 需要完整证据时,以该 Work 的显式合同为准。
1089
+
1090
+ ## 事务与归属隔离
1091
+
1092
+ 启动正式写入前检查原网关未闭合事务与写集。属于本任务的事务按原恢复协议处理;属于其他任务的事务不得接管、解锁、清空或覆盖。只暂停资源重叠的写入与依赖分支,继续独立、已授权工作;事务年龄不构成接管授权。写后按变更 ID 定位受影响的索引项并回读目标原文,不为核验默认整读整库。
1093
+
1094
+ </activation-and-memory>
1095
+
1096
+ <ref-common-rules-skill-invocation>
1097
+
1098
+ # 可验证的 Skill 调用契约
1099
+
1100
+ 本规则用于 T 规划、P 调度和 I 执行。Map 维护最低读取路由;每票 `skill_bindings` 才定义本票调用,二者不得互相代替。
1101
+
1102
+ ## 定位与绑定
1103
+
1104
+ 1. 从项目 Agent 指令解析真实 Skill 根,先枚举元数据和触发条件,再读取命中入口及当前阶段要求的参考;不整读所有 Skills。
1105
+ 2. 保留逻辑路径、解析真实源,检查不存在的路径、越界软链接、缓存和入口 `name`。默认不使用插件缓存或 node_modules 充当项目可维护源;用户维护的项目内软链接保持原状。仓库外技能需要先取得明确源域授权并由项目网关处理,控制器不会自行扩大根目录。
1106
+ 3. 每个绑定必须包含真实 `id`(SKILL 的 name)、项目根相对路径 `path`、入口字节 `sha256`、`phase`(plan/implement/verify)、`operation`、非空 `inputs`、`outputs`、`required` 与 `on_failure`。引用较长参考时在 references 字段 中记录明确 Path、sha256 与 `when`;相关参考在调用前按条件回读。
1107
+ 4. 必需绑定失败固定为 `block-ticket`;可选绑定只有说明 `condition` 与不适用原因才允许 `report-and-continue`。可选标记不能覆盖用户要求或技能自身硬门禁。
1108
+ 5. 在模板 frontmatter 中,数组对象用单行 JSON;不使用自定义 YAML 对象语法。缺失 Skill、摘要漂移、占位符或入口 ID 不符,票不得进入 ready。没有适用项目 Skill 时 `skill_bindings: []`,`skill_scan` 必须写真实扫描范围与不适用理由,Map 同步无适用项。
1109
+
1110
+ ## 示例形状(生成真实票时全部替换)
1111
+
1112
+ ```json
1113
+ {"id":"project-test","path":".agents/skills/project-test/SKILL.md","sha256":"<真实64位摘要>","phase":"verify","operation":"run-regression","inputs":["当前Ticket与定向diff"],"outputs":["含命令、退出码和验收映射的Evidence"],"required":true,"on_failure":"block-ticket","references":[]}
1114
+ ```
1115
+
1116
+ 此示例不是项目已存在的 Skill,不得复制为可执行绑定。SpecDev 自带技能在 Work 中按明确 Path 调用,不能伪装为项目 Skill。
1117
+
1118
+ ## 执行证据
1119
+
1120
+ 到相应阶段后,实际调用宿主能力或执行该 Skill 明确的步骤。记录技能 ID、phase、operation、所用摘要、输入定位、执行轨迹、输出与结果。仅展示 `@skill`、复制入口、声明“已读”都不是完成证据。
1121
+
1122
+ 新版票 done 前,在本票 `specdev/changes/{change}/evidence/T-NN.md` 增加 `## Skill Execution Records`,紧接一个 JSON 数组代码块。每项有 `id`、`phase`、`operation`、`sha256`、`status`(passed/failed/skipped)、非空 `evidence` 字符串数组。required 项必须 passed;验证器只能检查记录结构与摘要一致,Lead 仍需回读真实工具/过程证据,不能把结构通过称为宿主调用已经被认证。
1123
+
1124
+ 摘要变更先由 Lead 检查影响、更新绑定和 map 后重验;不自动接受最新文件,不回写已完成旧证据。
1125
+
1126
+ </ref-common-rules-skill-invocation>