@hunter-harness/workflow-harness 0.2.21 → 0.2.23

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 (214) hide show
  1. package/harness/bundles/general/claude-code/.harness-build.json +1 -1
  2. package/harness/bundles/general/claude-code/harness-archive/SKILL.md +12 -3
  3. package/harness/bundles/general/claude-code/harness-archive/checklist.md +14 -0
  4. package/harness/bundles/general/claude-code/harness-archive/templates/render-summary.mjs +24 -3
  5. package/harness/bundles/general/claude-code/harness-archive/templates/summary-data-template.json +11 -0
  6. package/harness/bundles/general/claude-code/harness-codebase-map/SKILL.md +1 -1
  7. package/harness/bundles/general/claude-code/harness-knowledge-ingest/SKILL.md +1 -1
  8. package/harness/bundles/general/claude-code/harness-knowledge-query/SKILL.md +1 -1
  9. package/harness/bundles/general/claude-code/harness-plan/SKILL.md +2 -1
  10. package/harness/bundles/general/claude-code/harness-plan/checklist.md +1 -0
  11. package/harness/bundles/general/claude-code/harness-plan/reference.md +17 -15
  12. package/harness/bundles/general/claude-code/harness-review/SKILL.md +1 -1
  13. package/harness/bundles/general/claude-code/harness-run/SKILL.md +1 -1
  14. package/harness/bundles/general/claude-code/harness-submit/SKILL.md +3 -1
  15. package/harness/bundles/general/claude-code/harness-submit/checklist.md +7 -1
  16. package/harness/bundles/general/claude-code/harness-sync/SKILL.md +1 -1
  17. package/harness/bundles/general/claude-code/harness-test/SKILL.md +1 -1
  18. package/harness/bundles/general/claude-code/harness-test/checklist.md +6 -0
  19. package/harness/bundles/general/claude-code/scripts/harness_archive.py +1168 -28
  20. package/harness/bundles/general/claude-code/scripts/harness_environment.py +459 -0
  21. package/harness/bundles/general/claude-code/scripts/harness_events.py +93 -14
  22. package/harness/bundles/general/claude-code/scripts/harness_integration.py +126 -14
  23. package/harness/bundles/general/claude-code/scripts/harness_ledger.py +30 -6
  24. package/harness/bundles/general/claude-code/scripts/harness_profile.py +33 -0
  25. package/harness/bundles/general/claude-code/scripts/harness_test_guard.py +30 -8
  26. package/harness/bundles/general/codebuddy/.harness-build.json +1 -1
  27. package/harness/bundles/general/codebuddy/harness-archive/SKILL.md +12 -3
  28. package/harness/bundles/general/codebuddy/harness-archive/checklist.md +14 -0
  29. package/harness/bundles/general/codebuddy/harness-archive/templates/render-summary.mjs +24 -3
  30. package/harness/bundles/general/codebuddy/harness-archive/templates/summary-data-template.json +11 -0
  31. package/harness/bundles/general/codebuddy/harness-codebase-map/SKILL.md +1 -1
  32. package/harness/bundles/general/codebuddy/harness-knowledge-ingest/SKILL.md +1 -1
  33. package/harness/bundles/general/codebuddy/harness-knowledge-query/SKILL.md +1 -1
  34. package/harness/bundles/general/codebuddy/harness-plan/SKILL.md +2 -1
  35. package/harness/bundles/general/codebuddy/harness-plan/checklist.md +1 -0
  36. package/harness/bundles/general/codebuddy/harness-plan/reference.md +17 -15
  37. package/harness/bundles/general/codebuddy/harness-review/SKILL.md +1 -1
  38. package/harness/bundles/general/codebuddy/harness-run/SKILL.md +1 -1
  39. package/harness/bundles/general/codebuddy/harness-submit/SKILL.md +3 -1
  40. package/harness/bundles/general/codebuddy/harness-submit/checklist.md +7 -1
  41. package/harness/bundles/general/codebuddy/harness-sync/SKILL.md +1 -1
  42. package/harness/bundles/general/codebuddy/harness-test/SKILL.md +1 -1
  43. package/harness/bundles/general/codebuddy/harness-test/checklist.md +6 -0
  44. package/harness/bundles/general/codebuddy/scripts/harness_archive.py +1168 -28
  45. package/harness/bundles/general/codebuddy/scripts/harness_environment.py +459 -0
  46. package/harness/bundles/general/codebuddy/scripts/harness_events.py +93 -14
  47. package/harness/bundles/general/codebuddy/scripts/harness_integration.py +126 -14
  48. package/harness/bundles/general/codebuddy/scripts/harness_ledger.py +30 -6
  49. package/harness/bundles/general/codebuddy/scripts/harness_profile.py +33 -0
  50. package/harness/bundles/general/codebuddy/scripts/harness_test_guard.py +30 -8
  51. package/harness/bundles/general/codex/.harness-build.json +1 -1
  52. package/harness/bundles/general/codex/harness-archive/SKILL.md +12 -3
  53. package/harness/bundles/general/codex/harness-archive/checklist.md +14 -0
  54. package/harness/bundles/general/codex/harness-archive/templates/render-summary.mjs +24 -3
  55. package/harness/bundles/general/codex/harness-archive/templates/summary-data-template.json +11 -0
  56. package/harness/bundles/general/codex/harness-codebase-map/SKILL.md +1 -1
  57. package/harness/bundles/general/codex/harness-knowledge-ingest/SKILL.md +1 -1
  58. package/harness/bundles/general/codex/harness-knowledge-query/SKILL.md +1 -1
  59. package/harness/bundles/general/codex/harness-plan/SKILL.md +2 -1
  60. package/harness/bundles/general/codex/harness-plan/checklist.md +1 -0
  61. package/harness/bundles/general/codex/harness-plan/reference.md +17 -15
  62. package/harness/bundles/general/codex/harness-review/SKILL.md +1 -1
  63. package/harness/bundles/general/codex/harness-run/SKILL.md +1 -1
  64. package/harness/bundles/general/codex/harness-submit/SKILL.md +3 -1
  65. package/harness/bundles/general/codex/harness-submit/checklist.md +7 -1
  66. package/harness/bundles/general/codex/harness-sync/SKILL.md +1 -1
  67. package/harness/bundles/general/codex/harness-test/SKILL.md +1 -1
  68. package/harness/bundles/general/codex/harness-test/checklist.md +6 -0
  69. package/harness/bundles/general/codex/scripts/harness_archive.py +1168 -28
  70. package/harness/bundles/general/codex/scripts/harness_environment.py +459 -0
  71. package/harness/bundles/general/codex/scripts/harness_events.py +93 -14
  72. package/harness/bundles/general/codex/scripts/harness_integration.py +126 -14
  73. package/harness/bundles/general/codex/scripts/harness_ledger.py +30 -6
  74. package/harness/bundles/general/codex/scripts/harness_profile.py +33 -0
  75. package/harness/bundles/general/codex/scripts/harness_test_guard.py +30 -8
  76. package/harness/bundles/general/cursor/.harness-build.json +1 -1
  77. package/harness/bundles/general/cursor/harness-archive/SKILL.md +12 -3
  78. package/harness/bundles/general/cursor/harness-archive/checklist.md +14 -0
  79. package/harness/bundles/general/cursor/harness-archive/templates/render-summary.mjs +24 -3
  80. package/harness/bundles/general/cursor/harness-archive/templates/summary-data-template.json +11 -0
  81. package/harness/bundles/general/cursor/harness-codebase-map/SKILL.md +1 -1
  82. package/harness/bundles/general/cursor/harness-knowledge-ingest/SKILL.md +1 -1
  83. package/harness/bundles/general/cursor/harness-knowledge-query/SKILL.md +1 -1
  84. package/harness/bundles/general/cursor/harness-plan/SKILL.md +2 -1
  85. package/harness/bundles/general/cursor/harness-plan/checklist.md +1 -0
  86. package/harness/bundles/general/cursor/harness-plan/reference.md +17 -15
  87. package/harness/bundles/general/cursor/harness-review/SKILL.md +1 -1
  88. package/harness/bundles/general/cursor/harness-run/SKILL.md +1 -1
  89. package/harness/bundles/general/cursor/harness-submit/SKILL.md +3 -1
  90. package/harness/bundles/general/cursor/harness-submit/checklist.md +7 -1
  91. package/harness/bundles/general/cursor/harness-sync/SKILL.md +1 -1
  92. package/harness/bundles/general/cursor/harness-test/SKILL.md +1 -1
  93. package/harness/bundles/general/cursor/harness-test/checklist.md +6 -0
  94. package/harness/bundles/general/cursor/scripts/harness_archive.py +1168 -28
  95. package/harness/bundles/general/cursor/scripts/harness_environment.py +459 -0
  96. package/harness/bundles/general/cursor/scripts/harness_events.py +93 -14
  97. package/harness/bundles/general/cursor/scripts/harness_integration.py +126 -14
  98. package/harness/bundles/general/cursor/scripts/harness_ledger.py +30 -6
  99. package/harness/bundles/general/cursor/scripts/harness_profile.py +33 -0
  100. package/harness/bundles/general/cursor/scripts/harness_test_guard.py +30 -8
  101. package/harness/bundles/java/claude-code/.harness-build.json +1 -1
  102. package/harness/bundles/java/claude-code/harness-apidoc/SKILL.md +1 -1
  103. package/harness/bundles/java/claude-code/harness-archive/SKILL.md +12 -3
  104. package/harness/bundles/java/claude-code/harness-archive/checklist.md +14 -0
  105. package/harness/bundles/java/claude-code/harness-archive/templates/render-summary.mjs +24 -3
  106. package/harness/bundles/java/claude-code/harness-archive/templates/summary-data-template.json +11 -0
  107. package/harness/bundles/java/claude-code/harness-codebase-map/SKILL.md +1 -1
  108. package/harness/bundles/java/claude-code/harness-knowledge-ingest/SKILL.md +1 -1
  109. package/harness/bundles/java/claude-code/harness-knowledge-query/SKILL.md +1 -1
  110. package/harness/bundles/java/claude-code/harness-package/SKILL.md +1 -1
  111. package/harness/bundles/java/claude-code/harness-plan/SKILL.md +2 -1
  112. package/harness/bundles/java/claude-code/harness-plan/checklist.md +1 -0
  113. package/harness/bundles/java/claude-code/harness-plan/reference.md +17 -15
  114. package/harness/bundles/java/claude-code/harness-review/SKILL.md +1 -1
  115. package/harness/bundles/java/claude-code/harness-run/SKILL.md +1 -1
  116. package/harness/bundles/java/claude-code/harness-submit/SKILL.md +3 -1
  117. package/harness/bundles/java/claude-code/harness-submit/checklist.md +7 -1
  118. package/harness/bundles/java/claude-code/harness-sync/SKILL.md +1 -1
  119. package/harness/bundles/java/claude-code/harness-test/SKILL.md +1 -1
  120. package/harness/bundles/java/claude-code/scripts/harness_archive.py +1168 -28
  121. package/harness/bundles/java/claude-code/scripts/harness_environment.py +459 -0
  122. package/harness/bundles/java/claude-code/scripts/harness_events.py +93 -14
  123. package/harness/bundles/java/claude-code/scripts/harness_integration.py +126 -14
  124. package/harness/bundles/java/claude-code/scripts/harness_ledger.py +30 -6
  125. package/harness/bundles/java/claude-code/scripts/harness_profile.py +33 -0
  126. package/harness/bundles/java/claude-code/scripts/harness_test_guard.py +30 -8
  127. package/harness/bundles/java/codebuddy/.harness-build.json +1 -1
  128. package/harness/bundles/java/codebuddy/harness-apidoc/SKILL.md +1 -1
  129. package/harness/bundles/java/codebuddy/harness-archive/SKILL.md +12 -3
  130. package/harness/bundles/java/codebuddy/harness-archive/checklist.md +14 -0
  131. package/harness/bundles/java/codebuddy/harness-archive/templates/render-summary.mjs +24 -3
  132. package/harness/bundles/java/codebuddy/harness-archive/templates/summary-data-template.json +11 -0
  133. package/harness/bundles/java/codebuddy/harness-codebase-map/SKILL.md +1 -1
  134. package/harness/bundles/java/codebuddy/harness-knowledge-ingest/SKILL.md +1 -1
  135. package/harness/bundles/java/codebuddy/harness-knowledge-query/SKILL.md +1 -1
  136. package/harness/bundles/java/codebuddy/harness-package/SKILL.md +1 -1
  137. package/harness/bundles/java/codebuddy/harness-plan/SKILL.md +2 -1
  138. package/harness/bundles/java/codebuddy/harness-plan/checklist.md +1 -0
  139. package/harness/bundles/java/codebuddy/harness-plan/reference.md +17 -15
  140. package/harness/bundles/java/codebuddy/harness-review/SKILL.md +1 -1
  141. package/harness/bundles/java/codebuddy/harness-run/SKILL.md +1 -1
  142. package/harness/bundles/java/codebuddy/harness-submit/SKILL.md +3 -1
  143. package/harness/bundles/java/codebuddy/harness-submit/checklist.md +7 -1
  144. package/harness/bundles/java/codebuddy/harness-sync/SKILL.md +1 -1
  145. package/harness/bundles/java/codebuddy/harness-test/SKILL.md +1 -1
  146. package/harness/bundles/java/codebuddy/scripts/harness_archive.py +1168 -28
  147. package/harness/bundles/java/codebuddy/scripts/harness_environment.py +459 -0
  148. package/harness/bundles/java/codebuddy/scripts/harness_events.py +93 -14
  149. package/harness/bundles/java/codebuddy/scripts/harness_integration.py +126 -14
  150. package/harness/bundles/java/codebuddy/scripts/harness_ledger.py +30 -6
  151. package/harness/bundles/java/codebuddy/scripts/harness_profile.py +33 -0
  152. package/harness/bundles/java/codebuddy/scripts/harness_test_guard.py +30 -8
  153. package/harness/bundles/java/codex/.harness-build.json +1 -1
  154. package/harness/bundles/java/codex/harness-apidoc/SKILL.md +1 -1
  155. package/harness/bundles/java/codex/harness-archive/SKILL.md +12 -3
  156. package/harness/bundles/java/codex/harness-archive/checklist.md +14 -0
  157. package/harness/bundles/java/codex/harness-archive/templates/render-summary.mjs +24 -3
  158. package/harness/bundles/java/codex/harness-archive/templates/summary-data-template.json +11 -0
  159. package/harness/bundles/java/codex/harness-codebase-map/SKILL.md +1 -1
  160. package/harness/bundles/java/codex/harness-knowledge-ingest/SKILL.md +1 -1
  161. package/harness/bundles/java/codex/harness-knowledge-query/SKILL.md +1 -1
  162. package/harness/bundles/java/codex/harness-package/SKILL.md +1 -1
  163. package/harness/bundles/java/codex/harness-plan/SKILL.md +2 -1
  164. package/harness/bundles/java/codex/harness-plan/checklist.md +1 -0
  165. package/harness/bundles/java/codex/harness-plan/reference.md +17 -15
  166. package/harness/bundles/java/codex/harness-review/SKILL.md +1 -1
  167. package/harness/bundles/java/codex/harness-run/SKILL.md +1 -1
  168. package/harness/bundles/java/codex/harness-submit/SKILL.md +3 -1
  169. package/harness/bundles/java/codex/harness-submit/checklist.md +7 -1
  170. package/harness/bundles/java/codex/harness-sync/SKILL.md +1 -1
  171. package/harness/bundles/java/codex/harness-test/SKILL.md +1 -1
  172. package/harness/bundles/java/codex/scripts/harness_archive.py +1168 -28
  173. package/harness/bundles/java/codex/scripts/harness_environment.py +459 -0
  174. package/harness/bundles/java/codex/scripts/harness_events.py +93 -14
  175. package/harness/bundles/java/codex/scripts/harness_integration.py +126 -14
  176. package/harness/bundles/java/codex/scripts/harness_ledger.py +30 -6
  177. package/harness/bundles/java/codex/scripts/harness_profile.py +33 -0
  178. package/harness/bundles/java/codex/scripts/harness_test_guard.py +30 -8
  179. package/harness/bundles/java/cursor/.harness-build.json +1 -1
  180. package/harness/bundles/java/cursor/harness-apidoc/SKILL.md +1 -1
  181. package/harness/bundles/java/cursor/harness-archive/SKILL.md +12 -3
  182. package/harness/bundles/java/cursor/harness-archive/checklist.md +14 -0
  183. package/harness/bundles/java/cursor/harness-archive/templates/render-summary.mjs +24 -3
  184. package/harness/bundles/java/cursor/harness-archive/templates/summary-data-template.json +11 -0
  185. package/harness/bundles/java/cursor/harness-codebase-map/SKILL.md +1 -1
  186. package/harness/bundles/java/cursor/harness-knowledge-ingest/SKILL.md +1 -1
  187. package/harness/bundles/java/cursor/harness-knowledge-query/SKILL.md +1 -1
  188. package/harness/bundles/java/cursor/harness-package/SKILL.md +1 -1
  189. package/harness/bundles/java/cursor/harness-plan/SKILL.md +2 -1
  190. package/harness/bundles/java/cursor/harness-plan/checklist.md +1 -0
  191. package/harness/bundles/java/cursor/harness-plan/reference.md +17 -15
  192. package/harness/bundles/java/cursor/harness-review/SKILL.md +1 -1
  193. package/harness/bundles/java/cursor/harness-run/SKILL.md +1 -1
  194. package/harness/bundles/java/cursor/harness-submit/SKILL.md +3 -1
  195. package/harness/bundles/java/cursor/harness-submit/checklist.md +7 -1
  196. package/harness/bundles/java/cursor/harness-sync/SKILL.md +1 -1
  197. package/harness/bundles/java/cursor/harness-test/SKILL.md +1 -1
  198. package/harness/bundles/java/cursor/scripts/harness_archive.py +1168 -28
  199. package/harness/bundles/java/cursor/scripts/harness_environment.py +459 -0
  200. package/harness/bundles/java/cursor/scripts/harness_events.py +93 -14
  201. package/harness/bundles/java/cursor/scripts/harness_integration.py +126 -14
  202. package/harness/bundles/java/cursor/scripts/harness_ledger.py +30 -6
  203. package/harness/bundles/java/cursor/scripts/harness_profile.py +33 -0
  204. package/harness/bundles/java/cursor/scripts/harness_test_guard.py +30 -8
  205. package/harness/manifests/general/claude-code.json +29 -25
  206. package/harness/manifests/general/codebuddy.json +29 -25
  207. package/harness/manifests/general/codex.json +29 -25
  208. package/harness/manifests/general/cursor.json +29 -25
  209. package/harness/manifests/java/claude-code.json +30 -26
  210. package/harness/manifests/java/codebuddy.json +30 -26
  211. package/harness/manifests/java/codex.json +30 -26
  212. package/harness/manifests/java/cursor.json +30 -26
  213. package/hunter-workflow-family.json +2 -2
  214. package/package.json +1 -1
@@ -198,6 +198,7 @@ source: harness-plan
198
198
  □ 已生成基础任务列表,并用 artifact 事件 note 记录任务拆分摘要
199
199
  □ 已叠加项目层序依赖(数据/契约→业务层→接口层)
200
200
  □ 已生成 4 维度场景表(单元/接口/数据兼容/集成)
201
+ □ 每个自动化场景均标注执行层级、预计时长、资源预算、超时、可复用证据;快速反馈不默认扫描全仓库
201
202
  □ 已确定变更名(kebab-case)
202
203
  □ 产物已写入 .harness/changes/<change-name>/plans/:
203
204
  - <change-name>-plan.md(简洁任务表)
@@ -228,34 +228,36 @@ status: approved
228
228
 
229
229
  #### 1.1 <类名.方法名>
230
230
 
231
- | # | 分类 | 场景描述 | 输入 | 预期 |
232
- |:--:|:----:|----------|------|------|
233
- | UT-001 | 正常 | ... | ... | ... |
234
- | UT-002 | 异常 | ... | ... | 抛 xxxException |
235
- | UT-003 | 边界 | ... | ... | ... |
231
+ | # | 分类 | 场景描述 | 输入 | 预期 | 执行层级 | 预计时长 | 资源预算 | 超时 | 可复用证据 |
232
+ |:--:|:----:|----------|------|------|----------|----------|----------|------|------------|
233
+ | UT-001 | 正常 | ... | ... | ... | affected | ≤10s | 1 worker / ≤512MB | 30s | inputsHash + command |
234
+ | UT-002 | 异常 | ... | ... | 抛 xxxException | affected | ≤10s | 1 worker / ≤512MB | 30s | inputsHash + command |
235
+ | UT-003 | 边界 | ... | ... | ... | module | ≤60s | ≤50% CPU / ≤1GB | 120s | ledger identity |
236
236
 
237
237
  ### 二、接口测试场景
238
238
 
239
239
  #### 2.1 POST /xxx
240
240
 
241
- | # | 分类 | 场景描述 | 关键字段 | HTTP | code | message |
242
- |:--:|:----:|----------|----------|:----:|:----:|--------|
243
- | API-001 | 正常 | ... | ... | 200 | 0 | 成功 |
244
- | API-002 | 校验 | ... | ... | 200 | xxx | ... |
241
+ | # | 分类 | 场景描述 | 关键字段 | HTTP | code | message | 执行层级 | 预计时长 | 资源预算 | 超时 | 可复用证据 |
242
+ |:--:|:----:|----------|----------|:----:|:----:|--------|----------|----------|----------|------|------------|
243
+ | API-001 | 正常 | ... | ... | 200 | 0 | 成功 | module | ≤60s | 1 service / ≤1GB | 120s | environmentHash + ledger |
244
+ | API-002 | 校验 | ... | ... | 200 | xxx | ... | affected | ≤20s | 1 service / ≤1GB | 60s | environmentHash + ledger |
245
245
 
246
246
  ### 三、数据兼容场景
247
247
 
248
- | # | 分类 | 场景描述 | 操作 | 数据特征 | 预期 |
249
- |:--:|:----:|----------|:----:|----------|------|
250
- | COM-001 | 旧数据 | ... | ... | ... | ... |
248
+ | # | 分类 | 场景描述 | 操作 | 数据特征 | 预期 | 执行层级 | 预计时长 | 资源预算 | 超时 | 可复用证据 |
249
+ |:--:|:----:|----------|:----:|----------|------|----------|----------|----------|------|------------|
250
+ | COM-001 | 旧数据 | ... | ... | ... | ... | module | ≤60s | isolated DB / ≤1GB | 120s | dbSchemaHash + ledger |
251
251
 
252
252
  ### 四、集成场景
253
253
 
254
- | # | 分类 | 场景描述 | 前置条件 | 步骤 | 预期 |
255
- |:--:|:----:|----------|----------|------|------|
256
- | INT-001 | 端到端 | ... | ... | N 步操作 | ... |
254
+ | # | 分类 | 场景描述 | 前置条件 | 步骤 | 预期 | 执行层级 | 预计时长 | 资源预算 | 超时 | 可复用证据 |
255
+ |:--:|:----:|----------|----------|------|------|----------|----------|----------|------|------------|
256
+ | INT-001 | 端到端 | ... | ... | N 步操作 | ... | candidate | ≤10m | ≤50% CPU / ≤2GB | 15m | verification identity |
257
257
  ```
258
258
 
259
+ 执行层级固定为 `affected`(快速反馈)、`module`(变更模块门禁)、`candidate`(产品候选)。禁止所有场景默认跑全仓库;无法给出预算或超时时必须说明原因,并拆分或隔离高成本场景。只有 command、inputs/toolchain/environment 身份一致的成功 ledger 证据可以复用。
260
+
259
261
  ## 产物保存规则(跨阶段:阶段0.5/4/6/8)
260
262
 
261
263
  1. **自动确定变更名**:基于需求描述自动生成变更名(kebab-case),无需用户确认
@@ -21,7 +21,7 @@ disallowed-tools:
21
21
  - Bash(curl *)
22
22
  - Bash(codegraph *)
23
23
  ---
24
- <!-- generated by harness_deploy.py; core=a9c096220b88ca56; overlay=java; agent=claude-code; do not edit -->
24
+ <!-- generated by harness_deploy.py; core=506c7d9df54c0f80; overlay=java; agent=claude-code; do not edit -->
25
25
  # harness-review — 代码审查
26
26
 
27
27
  ## Purpose
@@ -21,7 +21,7 @@ disallowed-tools:
21
21
  - Bash(curl *)
22
22
  - Bash(codegraph *)
23
23
  ---
24
- <!-- generated by harness_deploy.py; core=a9c096220b88ca56; overlay=java; agent=claude-code; do not edit -->
24
+ <!-- generated by harness_deploy.py; core=506c7d9df54c0f80; overlay=java; agent=claude-code; do not edit -->
25
25
  # harness-run — 需求编码
26
26
 
27
27
  ## Purpose
@@ -20,7 +20,7 @@ disallowed-tools:
20
20
  - Bash(awk *)
21
21
  - Bash(curl *)
22
22
  ---
23
- <!-- generated by harness_deploy.py; core=a9c096220b88ca56; overlay=java; agent=claude-code; do not edit -->
23
+ <!-- generated by harness_deploy.py; core=506c7d9df54c0f80; overlay=java; agent=claude-code; do not edit -->
24
24
  # harness-submit — 最终提交(含 worktree 合并)
25
25
 
26
26
  ## Purpose
@@ -77,6 +77,8 @@ worktree 合并前必须运行 `harness_change.py integration-lock acquire --run
77
77
  0. **启动准备** — `harness_change.py resolve` 确定变更名;**`harness_gate.py begin --phase submit --change <id>`**;读 ledger,以 `harness_ledger.py diff-hash --repo . --base <baseCommit> --change-dir ".harness/changes/<change-name>" --json` 计算 diffHash + post-test 7 类分类(禁止手写 ledger / 手工 phase.end)
78
78
  1. **合并最新代码** — 主目录与 worktree 均**不在业务工作区 stash/pull**;远端同步由合并段 integration transaction 在隔离 integration worktree 内完成(见「worktree 合并流程」);**正常路径禁止 `git stash` / `stash pop`**
79
79
  2. **最终验证** — ledger 复用优先;**提交前最终门禁只调 `can-reuse`**(删除与 coverage 冲突的二次全量门禁):`harness_ledger.py can-reuse --verification unitTestFull --scope module --project . --profile-input unitTestFull --command <resolved commands.unitTestFull.command>`。`--command` **按 profile key resolve**:读 `build-profile.json` 的 `commands.unitTestFull.command`(v2),或 `harness_profile.py resolve --project . --key unitTestFull --json` 取 resolved command,**不复制示例模块名**(文档示例只展示 key)。`--profile-input unitTestFull` 从 `verificationInputs.unitTestFull`(v2 由 `commands.unitTestFull.inputs` 派生)展开依赖闭包,**禁止用仅含 staged 文件的 `--files` 快捷方式**冒充全量闭包。`reuse=true` → 不再执行二次全量测试;仅 `reuse=false` 时执行**同一 resolved verification**(profile `unitTestFull` 命令),成功后用同一文件集、command、`scope=module` 经 **`harness_ledger.py record`** 写回 ledger `unitTestFull` 项。增量 `unitTest` 永远不能冒充 `unitTestFull` 门禁。
80
+ - 无远端 CI 且 gate-policy 未强制 remote provider 时,验证通过/复用后运行 `harness_archive.py certify-local --change-dir ... --project . --json`,从同一 ledger 生成 `local-reproducible` 产品候选收据;该命令不执行测试。
81
+ - gate-policy 要求 `remote-attested` 时不得降级成本地收据,等待远端 attestation。
80
82
  3. **.gitignore + 精确暂存** ⚠️ — 检查 `.harness/` 在 `.gitignore`;**禁止 `git add -A`**。若存在 `evidence/test-tracking.json`,先执行 `python <skills-root>/scripts/harness_test_guard.py stage --project . --change-dir ".harness/changes/<change-name>" --json`;失败即硬停止。无 manifest 时不使用 `-f`。manifest 之外的文件按精确业务路径正常暂存,**禁止全局 force-add**。
81
83
  4. **提交方式** — 主目录:blocking user confirmation 三选项(commit+push / 仅本地 / 取消);**worktree:固定仅本地 commit**
82
84
  5. **commit-message.txt** ⚠️ — 展示 staged、diff stat、完整中文 message;用户确认
@@ -15,6 +15,12 @@ description: harness-submit 的8 步工作流详细步骤和执行日志记录
15
15
  - blocking user confirmation 参数错误时不得自行绕过,必须改用固定模板重问。
16
16
  - staged diff 是唯一提交依据。
17
17
 
18
+ ### Wave-A 发布身份与环境边界
19
+
20
+ - [ ] 产品候选身份与归档治理身份分离:`productCommit`/`productTreeHash` 绑产品验证;`archiveCommit` 可晚于产品
21
+ - [ ] 进入 candidate CI / archive 前确认 product candidate CI 证据可被 `harness_archive status` 读取为 green
22
+ - [ ] 需要可写 DB/栈时走 `harness_environment` lease;禁止跨 change 默认可写共享
23
+
18
24
 
19
25
  ## 步骤 0:启动准备
20
26
 
@@ -364,7 +370,7 @@ python harness/scripts/harness_integration.py verify --change <change-name> --ru
364
370
  **写 check-ok marker**(npm run check exit 0 后强制):
365
371
 
366
372
  ```powershell
367
- powershell.exe -Command "python harness/scripts/harness_check_gate.py --write"
373
+ node scripts/check-gate.mjs --write
368
374
  ```
369
375
 
370
376
  ### 步骤 M5:push
@@ -19,7 +19,7 @@ disallowed-tools:
19
19
  - Bash(awk *)
20
20
  - Bash(curl *)
21
21
  ---
22
- <!-- generated by harness_deploy.py; core=a9c096220b88ca56; overlay=java; agent=claude-code; do not edit -->
22
+ <!-- generated by harness_deploy.py; core=506c7d9df54c0f80; overlay=java; agent=claude-code; do not edit -->
23
23
  # harness-sync — 元数据同步
24
24
 
25
25
  ## Purpose
@@ -22,7 +22,7 @@ disallowed-tools:
22
22
  - Bash(node *)
23
23
  - Bash(codegraph *)
24
24
  ---
25
- <!-- generated by harness_deploy.py; core=a9c096220b88ca56; overlay=java; agent=claude-code; do not edit -->
25
+ <!-- generated by harness_deploy.py; core=506c7d9df54c0f80; overlay=java; agent=claude-code; do not edit -->
26
26
  # harness-test — 测试执行
27
27
 
28
28
  ## Purpose