soloforge 1.1.52 → 1.1.54

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 (250) hide show
  1. package/dist/cli/adapter_writers.d.ts +2 -6
  2. package/dist/cli/adapter_writers.d.ts.map +1 -1
  3. package/dist/cli/adapter_writers.js +2 -18
  4. package/dist/cli/adapter_writers.js.map +1 -1
  5. package/dist/cli/init.d.ts +2 -2
  6. package/dist/cli/init.d.ts.map +1 -1
  7. package/dist/cli/init.js +16 -37
  8. package/dist/cli/init.js.map +1 -1
  9. package/dist/context/adapter_prompt_contract.d.ts +0 -14
  10. package/dist/context/adapter_prompt_contract.d.ts.map +1 -1
  11. package/dist/context/adapter_prompt_contract.js +0 -46
  12. package/dist/context/adapter_prompt_contract.js.map +1 -1
  13. package/dist/context/adapters/shared/integration_guide.d.ts +5 -5
  14. package/dist/context/adapters/shared/integration_guide.d.ts.map +1 -1
  15. package/dist/context/adapters/shared/integration_guide.js +29 -14
  16. package/dist/context/adapters/shared/integration_guide.js.map +1 -1
  17. package/dist/context/adapters/shared/workflow_template.d.ts +12 -29
  18. package/dist/context/adapters/shared/workflow_template.d.ts.map +1 -1
  19. package/dist/context/adapters/shared/workflow_template.js +13 -96
  20. package/dist/context/adapters/shared/workflow_template.js.map +1 -1
  21. package/dist/context/config/resolver.d.ts +0 -6
  22. package/dist/context/config/resolver.d.ts.map +1 -1
  23. package/dist/context/config/resolver.js +12 -0
  24. package/dist/context/config/resolver.js.map +1 -1
  25. package/dist/context/contracts/lifecycle_knowledge_contract.d.ts.map +1 -1
  26. package/dist/context/contracts/lifecycle_knowledge_contract.js +0 -10
  27. package/dist/context/contracts/lifecycle_knowledge_contract.js.map +1 -1
  28. package/dist/context/knowledge/index_manager.d.ts +3 -0
  29. package/dist/context/knowledge/index_manager.d.ts.map +1 -1
  30. package/dist/context/knowledge/index_manager.js +16 -0
  31. package/dist/context/knowledge/index_manager.js.map +1 -1
  32. package/dist/context/knowledge/knowledge_template_contracts.d.ts +1 -1
  33. package/dist/context/knowledge/knowledge_template_contracts.d.ts.map +1 -1
  34. package/dist/context/templates/standard_asset_contract.d.ts +1 -1
  35. package/dist/context/templates/standard_asset_contract.js +4 -4
  36. package/dist/context/templates/standard_asset_contract.js.map +1 -1
  37. package/dist/context/templates/standard_asset_coverage.js +2 -2
  38. package/dist/context/templates/standard_asset_coverage.js.map +1 -1
  39. package/dist/context/templates/workflow_rule_generator.d.ts +1 -9
  40. package/dist/context/templates/workflow_rule_generator.d.ts.map +1 -1
  41. package/dist/context/templates/workflow_rule_generator.js +2 -12
  42. package/dist/context/templates/workflow_rule_generator.js.map +1 -1
  43. package/dist/core/adversarial_review_store.d.ts +6 -0
  44. package/dist/core/adversarial_review_store.d.ts.map +1 -1
  45. package/dist/core/adversarial_review_store.js +29 -0
  46. package/dist/core/adversarial_review_store.js.map +1 -1
  47. package/dist/core/condition_evaluators.d.ts +42 -0
  48. package/dist/core/condition_evaluators.d.ts.map +1 -0
  49. package/dist/core/condition_evaluators.js +31 -0
  50. package/dist/core/condition_evaluators.js.map +1 -0
  51. package/dist/core/domain_transition.js +1 -1
  52. package/dist/core/domain_transition.js.map +1 -1
  53. package/dist/core/gate_record_store.d.ts +6 -0
  54. package/dist/core/gate_record_store.d.ts.map +1 -1
  55. package/dist/core/gate_record_store.js +27 -0
  56. package/dist/core/gate_record_store.js.map +1 -1
  57. package/dist/core/git_utils.d.ts +6 -0
  58. package/dist/core/git_utils.d.ts.map +1 -1
  59. package/dist/core/git_utils.js +20 -0
  60. package/dist/core/git_utils.js.map +1 -1
  61. package/dist/core/intent_router.js +1 -1
  62. package/dist/core/intent_router.js.map +1 -1
  63. package/dist/core/observer.d.ts.map +1 -1
  64. package/dist/core/observer.js +30 -23
  65. package/dist/core/observer.js.map +1 -1
  66. package/dist/core/task_context/manager.d.ts +5 -4
  67. package/dist/core/task_context/manager.d.ts.map +1 -1
  68. package/dist/core/task_context/manager.js +18 -8
  69. package/dist/core/task_context/manager.js.map +1 -1
  70. package/dist/core/task_context/manager_setters.d.ts +2 -2
  71. package/dist/core/task_context/manager_setters.d.ts.map +1 -1
  72. package/dist/core/task_context/manager_setters.js +18 -48
  73. package/dist/core/task_context/manager_setters.js.map +1 -1
  74. package/dist/core/task_context/status_transitions.js +2 -2
  75. package/dist/core/task_context/status_transitions.js.map +1 -1
  76. package/dist/core/types.d.ts +18 -6
  77. package/dist/core/types.d.ts.map +1 -1
  78. package/dist/domain/asset_registry/derived_registry.d.ts +0 -1
  79. package/dist/domain/asset_registry/derived_registry.d.ts.map +1 -1
  80. package/dist/domain/asset_registry/derived_registry.js.map +1 -1
  81. package/dist/domain/asset_registry/derived_types.d.ts +5 -2
  82. package/dist/domain/asset_registry/derived_types.d.ts.map +1 -1
  83. package/dist/domain/build/contract.d.ts.map +1 -1
  84. package/dist/domain/build/contract.js +12 -2
  85. package/dist/domain/build/contract.js.map +1 -1
  86. package/dist/domain/build/engine.d.ts.map +1 -1
  87. package/dist/domain/build/engine.js +23 -2
  88. package/dist/domain/build/engine.js.map +1 -1
  89. package/dist/domain/contracts/artifact_contract_registry.d.ts +1 -1
  90. package/dist/domain/contracts/artifact_contract_registry.d.ts.map +1 -1
  91. package/dist/domain/contracts/artifact_contract_registry.js +20 -26
  92. package/dist/domain/contracts/artifact_contract_registry.js.map +1 -1
  93. package/dist/domain/contracts/artifact_schema_registry.d.ts +1 -1
  94. package/dist/domain/contracts/artifact_schema_registry.d.ts.map +1 -1
  95. package/dist/domain/contracts/artifact_schema_registry.js +49 -71
  96. package/dist/domain/contracts/artifact_schema_registry.js.map +1 -1
  97. package/dist/domain/contracts/design_lifecycle_contract.d.ts +4 -8
  98. package/dist/domain/contracts/design_lifecycle_contract.d.ts.map +1 -1
  99. package/dist/domain/contracts/design_lifecycle_contract.js +8 -127
  100. package/dist/domain/contracts/design_lifecycle_contract.js.map +1 -1
  101. package/dist/domain/delivery_readiness.d.ts +0 -26
  102. package/dist/domain/delivery_readiness.d.ts.map +1 -1
  103. package/dist/domain/delivery_readiness.js +0 -41
  104. package/dist/domain/delivery_readiness.js.map +1 -1
  105. package/dist/domain/design/contract.d.ts.map +1 -1
  106. package/dist/domain/design/contract.js +13 -8
  107. package/dist/domain/design/contract.js.map +1 -1
  108. package/dist/domain/design/engine.d.ts.map +1 -1
  109. package/dist/domain/design/engine.js +31 -10
  110. package/dist/domain/design/engine.js.map +1 -1
  111. package/dist/domain/engine_helpers.d.ts +14 -5
  112. package/dist/domain/engine_helpers.d.ts.map +1 -1
  113. package/dist/domain/engine_helpers.js +73 -4
  114. package/dist/domain/engine_helpers.js.map +1 -1
  115. package/dist/domain/input_material_contract_registry.d.ts +1 -1
  116. package/dist/domain/input_material_contract_registry.js +1 -1
  117. package/dist/domain/operate/contract.d.ts.map +1 -1
  118. package/dist/domain/operate/contract.js +9 -3
  119. package/dist/domain/operate/contract.js.map +1 -1
  120. package/dist/domain/verify/contract.d.ts.map +1 -1
  121. package/dist/domain/verify/contract.js +8 -3
  122. package/dist/domain/verify/contract.js.map +1 -1
  123. package/dist/gate/cep_assessment.d.ts +0 -6
  124. package/dist/gate/cep_assessment.d.ts.map +1 -1
  125. package/dist/gate/cep_assessment.js +0 -23
  126. package/dist/gate/cep_assessment.js.map +1 -1
  127. package/dist/gate/contracts/capability_registry.js +3 -3
  128. package/dist/gate/contracts/capability_registry.js.map +1 -1
  129. package/dist/gate/contracts/control_plane_contract.d.ts.map +1 -1
  130. package/dist/gate/contracts/control_plane_contract.js +1 -2
  131. package/dist/gate/contracts/control_plane_contract.js.map +1 -1
  132. package/dist/gate/contracts/tool_invocation_contract_registry.js +3 -3
  133. package/dist/gate/contracts/tool_invocation_contract_registry.js.map +1 -1
  134. package/dist/gate/diff_ownership.d.ts +0 -8
  135. package/dist/gate/diff_ownership.d.ts.map +1 -1
  136. package/dist/gate/diff_ownership.js.map +1 -1
  137. package/dist/gate/executors/executors_annotation.d.ts.map +1 -1
  138. package/dist/gate/executors/executors_annotation.js +26 -5
  139. package/dist/gate/executors/executors_annotation.js.map +1 -1
  140. package/dist/gate/executors/executors_artifact.d.ts +5 -0
  141. package/dist/gate/executors/executors_artifact.d.ts.map +1 -1
  142. package/dist/gate/executors/executors_artifact.js +174 -60
  143. package/dist/gate/executors/executors_artifact.js.map +1 -1
  144. package/dist/gate/executors/executors_prerequisite.d.ts.map +1 -1
  145. package/dist/gate/executors/executors_prerequisite.js +31 -20
  146. package/dist/gate/executors/executors_prerequisite.js.map +1 -1
  147. package/dist/gate/executors/executors_regex_scan.d.ts.map +1 -1
  148. package/dist/gate/executors/executors_regex_scan.js +12 -2
  149. package/dist/gate/executors/executors_regex_scan.js.map +1 -1
  150. package/dist/gate/executors/executors_trace.d.ts.map +1 -1
  151. package/dist/gate/executors/executors_trace.js +49 -10
  152. package/dist/gate/executors/executors_trace.js.map +1 -1
  153. package/dist/gate/gate_engine.d.ts +5 -0
  154. package/dist/gate/gate_engine.d.ts.map +1 -1
  155. package/dist/gate/gate_engine.js +7 -3
  156. package/dist/gate/gate_engine.js.map +1 -1
  157. package/dist/gate/gate_registry_bridge.d.ts +1 -1
  158. package/dist/gate/gate_registry_bridge.d.ts.map +1 -1
  159. package/dist/gate/gate_registry_bridge.js +12 -3
  160. package/dist/gate/gate_registry_bridge.js.map +1 -1
  161. package/dist/gate/plan_proposal_gate.d.ts +0 -18
  162. package/dist/gate/plan_proposal_gate.d.ts.map +1 -1
  163. package/dist/gate/plan_proposal_gate.js +0 -51
  164. package/dist/gate/plan_proposal_gate.js.map +1 -1
  165. package/dist/index.js +2 -2
  166. package/dist/server/tools/middleware.d.ts +1 -1
  167. package/dist/server/tools/middleware.d.ts.map +1 -1
  168. package/dist/server/tools/sf_gate.d.ts.map +1 -1
  169. package/dist/server/tools/sf_gate.js +19 -10
  170. package/dist/server/tools/sf_gate.js.map +1 -1
  171. package/dist/server/tools/sf_task.d.ts +2 -1
  172. package/dist/server/tools/sf_task.d.ts.map +1 -1
  173. package/dist/server/tools/sf_task.js +27 -15
  174. package/dist/server/tools/sf_task.js.map +1 -1
  175. package/dist/server/tools/sf_work.d.ts +86 -0
  176. package/dist/server/tools/sf_work.d.ts.map +1 -1
  177. package/dist/server/tools/sf_work.js +119 -56
  178. package/dist/server/tools/sf_work.js.map +1 -1
  179. package/dist/shared/diagnostic_registry.d.ts +0 -44
  180. package/dist/shared/diagnostic_registry.d.ts.map +1 -1
  181. package/dist/shared/diagnostic_registry.js +1 -254
  182. package/dist/shared/diagnostic_registry.js.map +1 -1
  183. package/dist/shared/glob_path.d.ts +3 -3
  184. package/dist/shared/glob_path.d.ts.map +1 -1
  185. package/dist/shared/glob_path.js +9 -5
  186. package/dist/shared/glob_path.js.map +1 -1
  187. package/dist/shared/helpers.d.ts +5 -3
  188. package/dist/shared/helpers.d.ts.map +1 -1
  189. package/dist/shared/helpers.js +11 -9
  190. package/dist/shared/helpers.js.map +1 -1
  191. package/dist/shared/knowledge_config_loader.d.ts +0 -12
  192. package/dist/shared/knowledge_config_loader.d.ts.map +1 -1
  193. package/dist/shared/knowledge_config_loader.js +0 -28
  194. package/dist/shared/knowledge_config_loader.js.map +1 -1
  195. package/dist/shared/write_file_atomic.d.ts +6 -0
  196. package/dist/shared/write_file_atomic.d.ts.map +1 -1
  197. package/dist/shared/write_file_atomic.js +8 -2
  198. package/dist/shared/write_file_atomic.js.map +1 -1
  199. package/dist/types/pipeline_types.d.ts +18 -19
  200. package/dist/types/pipeline_types.d.ts.map +1 -1
  201. package/dist/verify/audit/evolver.d.ts +1 -2
  202. package/dist/verify/audit/evolver.d.ts.map +1 -1
  203. package/dist/verify/audit/evolver.js +1 -2
  204. package/dist/verify/audit/evolver.js.map +1 -1
  205. package/dist/verify/audit/main_path_integration_contract/constants.d.ts +2 -8
  206. package/dist/verify/audit/main_path_integration_contract/constants.d.ts.map +1 -1
  207. package/dist/verify/audit/main_path_integration_contract/constants.js +1 -15
  208. package/dist/verify/audit/main_path_integration_contract/constants.js.map +1 -1
  209. package/dist/verify/audit/probe_rule.d.ts +0 -6
  210. package/dist/verify/audit/probe_rule.d.ts.map +1 -1
  211. package/dist/verify/audit/probe_rule.js +11 -0
  212. package/dist/verify/audit/probe_rule.js.map +1 -1
  213. package/dist/verify/index.d.ts +0 -1
  214. package/dist/verify/index.d.ts.map +1 -1
  215. package/dist/verify/index.js +1 -2
  216. package/dist/verify/index.js.map +1 -1
  217. package/dist/verify/types.d.ts +1 -1
  218. package/dist/verify/types.d.ts.map +1 -1
  219. package/package.json +2 -3
  220. package/templates/build/enforced.md +4 -1
  221. package/templates/build//347/274/226/347/240/201/347/272/252/345/276/213.md +2 -2
  222. package/templates/design/enforced.md +26 -14
  223. package/templates/design//345/216/237/345/236/213/350/257/264/346/230/216.md +2 -2
  224. package/templates/design//345/274/200/345/217/221/345/210/207/347/211/207/350/256/241/345/210/222.md +3 -3
  225. package/templates/design//346/236/266/346/236/204/350/256/276/350/256/{241.md → 241/346/226/207/346/241/243.md} +1 -4
  226. package/templates/operate/enforced.md +1 -0
  227. package/templates/shared/deterministic_executors.json +27 -0
  228. package/templates/shared//345/267/245/344/275/234/346/265/201/347/241/254/350/247/204/345/210/231/345/245/221/347/272/246.md +1 -25
  229. package/templates/verify/enforced.md +10 -0
  230. package/templates/verify//346/265/213/350/257/225/346/212/245/345/221/212.md +53 -0
  231. package/dist/context/adapters/trae/trae_config.d.ts +0 -31
  232. package/dist/context/adapters/trae/trae_config.d.ts.map +0 -1
  233. package/dist/context/adapters/trae/trae_config.js +0 -35
  234. package/dist/context/adapters/trae/trae_config.js.map +0 -1
  235. package/dist/context/adapters/trae/trae_rules.d.ts +0 -21
  236. package/dist/context/adapters/trae/trae_rules.d.ts.map +0 -1
  237. package/dist/context/adapters/trae/trae_rules.js +0 -56
  238. package/dist/context/adapters/trae/trae_rules.js.map +0 -1
  239. package/dist/gate/uncertainty_bridge.d.ts +0 -87
  240. package/dist/gate/uncertainty_bridge.d.ts.map +0 -1
  241. package/dist/gate/uncertainty_bridge.js +0 -73
  242. package/dist/gate/uncertainty_bridge.js.map +0 -1
  243. package/dist/verify/audit/failure_classifier.d.ts +0 -52
  244. package/dist/verify/audit/failure_classifier.d.ts.map +0 -1
  245. package/dist/verify/audit/failure_classifier.js +0 -188
  246. package/dist/verify/audit/failure_classifier.js.map +0 -1
  247. package/dist/verify/oda/controller.d.ts +0 -38
  248. package/dist/verify/oda/controller.d.ts.map +0 -1
  249. package/dist/verify/oda/controller.js +0 -209
  250. package/dist/verify/oda/controller.js.map +0 -1
@@ -41,16 +41,6 @@ export interface DeliveryReadinessReport {
41
41
  /** 交付是否已执行 — 必须独立于 readiness 判断 */
42
42
  delivery_executed: boolean;
43
43
  }
44
- export interface DeliveryExecutionRecord {
45
- execution_id: string;
46
- task_id: string;
47
- trigger: "verify" | "manual";
48
- commit_sha?: string;
49
- pr_url?: string;
50
- changelog_entry?: string;
51
- executed_at: string;
52
- rolled_back: boolean;
53
- }
54
44
  /**
55
45
  * 评估交付就绪状态。
56
46
  * 只做判断,不执行任何交付动作。
@@ -59,20 +49,4 @@ export declare function evaluateDeliveryReadiness(taskId: string, verifyGateReco
59
49
  final_access: FinalLocalReviewAccess;
60
50
  project_run_mode: "not_applicable" | "docker_compose" | "dockerfile" | "local_dev_server";
61
51
  }): DeliveryReadinessReport;
62
- /**
63
- * 创建交付执行记录。
64
- * 必须由 sf_work verify 或手动触发,不能由 readiness 自动触发。
65
- */
66
- export declare function createDeliveryExecutionRecord(taskId: string, trigger: "verify" | "manual", details: {
67
- commit_sha?: string;
68
- pr_url?: string;
69
- changelog_entry?: string;
70
- }): DeliveryExecutionRecord;
71
- /**
72
- * 验证: delivery_readiness 不得触发 delivery_execution。
73
- */
74
- export declare function validateDeliverySeparation(report: DeliveryReadinessReport, executionRecord: DeliveryExecutionRecord | undefined): Array<{
75
- error: string;
76
- severity: "hard_fail" | "warning";
77
- }>;
78
52
  //# sourceMappingURL=delivery_readiness.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"delivery_readiness.d.ts","sourceRoot":"","sources":["../../src/domain/delivery_readiness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAIhH,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,iBAAiB,CAAC;AAExG,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,yBAAyB,EAAE,uBAAuB,CAAC;IACnD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,uDAAuD;IACvD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,0BAA0B,EAAE,OAAO,CAAC;IACpC,mEAAmE;IACnE,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,iBAAiB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,YAAY,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,UAAU,GAAG,SAAS,EACxC,aAAa,EAAE,YAAY,EAAE,EAC7B,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,OAAO,EACzB,kBAAkB,EAAE,OAAO,EAC3B,wBAAwB,EAAE,OAAO,EACjC,iBAAiB,GAAE,MAAM,EAAO,EAChC,WAAW,CAAC,EAAE,YAAY,EAAE,EAC5B,gBAAgB,CAAC,EAAE;IAAE,YAAY,EAAE,sBAAsB,CAAC;IAAC,gBAAgB,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,YAAY,GAAG,kBAAkB,CAAA;CAAE,GACrJ,uBAAuB,CA6HzB;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,GAAG,QAAQ,EAC5B,OAAO,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1E,uBAAuB,CAWzB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,uBAAuB,EAC/B,eAAe,EAAE,uBAAuB,GAAG,SAAS,GACnD,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,WAAW,GAAG,SAAS,CAAA;CAAE,CAAC,CAyB7D"}
1
+ {"version":3,"file":"delivery_readiness.d.ts","sourceRoot":"","sources":["../../src/domain/delivery_readiness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAIhH,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,iBAAiB,CAAC;AAExG,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,yBAAyB,EAAE,uBAAuB,CAAC;IACnD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,uDAAuD;IACvD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,0BAA0B,EAAE,OAAO,CAAC;IACpC,mEAAmE;IACnE,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,iBAAiB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,YAAY,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,UAAU,GAAG,SAAS,EACxC,aAAa,EAAE,YAAY,EAAE,EAC7B,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,OAAO,EACzB,kBAAkB,EAAE,OAAO,EAC3B,wBAAwB,EAAE,OAAO,EACjC,iBAAiB,GAAE,MAAM,EAAO,EAChC,WAAW,CAAC,EAAE,YAAY,EAAE,EAC5B,gBAAgB,CAAC,EAAE;IAAE,YAAY,EAAE,sBAAsB,CAAC;IAAC,gBAAgB,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,YAAY,GAAG,kBAAkB,CAAA;CAAE,GACrJ,uBAAuB,CA6HzB"}
@@ -132,45 +132,4 @@ export function evaluateDeliveryReadiness(taskId, verifyGateRecord, guardFinding
132
132
  delivery_executed: false, // 就绪报告不触发执行
133
133
  };
134
134
  }
135
- /**
136
- * 创建交付执行记录。
137
- * 必须由 sf_work verify 或手动触发,不能由 readiness 自动触发。
138
- */
139
- export function createDeliveryExecutionRecord(taskId, trigger, details) {
140
- return {
141
- execution_id: `de-${taskId}-${Date.now()}`,
142
- task_id: taskId,
143
- trigger,
144
- commit_sha: details.commit_sha,
145
- pr_url: details.pr_url,
146
- changelog_entry: details.changelog_entry,
147
- executed_at: new Date().toISOString(),
148
- rolled_back: false,
149
- };
150
- }
151
- /**
152
- * 验证: delivery_readiness 不得触发 delivery_execution。
153
- */
154
- export function validateDeliverySeparation(report, executionRecord) {
155
- const errors = [];
156
- if (report.delivery_allowed && report.delivery_executed) {
157
- errors.push({
158
- error: "delivery_readiness 报告不应触发 delivery_execution",
159
- severity: "hard_fail",
160
- });
161
- }
162
- if (executionRecord && !report.delivery_allowed) {
163
- errors.push({
164
- error: "交付已执行但 delivery_readiness 未允许",
165
- severity: "hard_fail",
166
- });
167
- }
168
- if (executionRecord && executionRecord.trigger === undefined) {
169
- errors.push({
170
- error: "交付执行记录缺少显式触发来源",
171
- severity: "hard_fail",
172
- });
173
- }
174
- return errors;
175
- }
176
135
  //# sourceMappingURL=delivery_readiness.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"delivery_readiness.js","sourceRoot":"","sources":["../../src/domain/delivery_readiness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delivery_readiness.js","sourceRoot":"","sources":["../../src/domain/delivery_readiness.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../src/domain/design/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,YAAY;AACZ,eAAO,MAAM,cAAc,EAAE,cAqD5B,CAAC"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../src/domain/design/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,YAAY;AACZ,eAAO,MAAM,cAAc,EAAE,cA0D5B,CAAC"}
@@ -25,8 +25,9 @@ export const designContract = {
25
25
  },
26
26
  {
27
27
  kind: "prototype_spec",
28
- path_pattern: "docs/analyze/*/01-原型说明.md",
29
- required: false,
28
+ path_pattern: "docs/analyze/*/pages/*-原型说明.md",
29
+ required: true,
30
+ condition: "scope:frontend",
30
31
  gate: "design-gate",
31
32
  template: "原型说明.md",
32
33
  },
@@ -35,24 +36,29 @@ export const designContract = {
35
36
  path_pattern: "docs/architecture/01-架构设计文档.md",
36
37
  required: true,
37
38
  gate: "design-gate",
38
- template: "架构设计.md",
39
+ template: "架构设计文档.md",
39
40
  references: ["docs/architecture/00-架构决策记录.md"],
41
+ requires: [{ kind: "requirement_analysis" }, { kind: "prototype_spec", when: "scope:frontend" }],
40
42
  },
41
43
  {
42
44
  kind: "database_design",
43
45
  path_pattern: "docs/design/01-数据库设计文档.md",
44
- required: false,
46
+ required: true,
47
+ condition: "scope:persistence",
45
48
  gate: "design-gate",
46
49
  template: "数据库设计文档.md",
47
50
  companion_files: ["docs/design/schema.sql"],
51
+ requires: [{ kind: "design_doc" }],
48
52
  },
49
53
  {
50
- kind: "api_specification",
54
+ kind: "api_spec",
51
55
  path_pattern: "docs/design/02-API接口规格文档.md",
52
- required: false,
56
+ required: true,
57
+ condition: "scope:api",
53
58
  gate: "design-gate",
54
59
  template: "API接口规格文档.md",
55
60
  companion_files: ["docs/api/openapi.yaml"],
61
+ requires: [{ kind: "design_doc" }, { kind: "prototype_spec", when: "scope:frontend" }, { kind: "database_design", when: "scope:persistence" }],
56
62
  },
57
63
  {
58
64
  kind: "slice_plan",
@@ -60,10 +66,9 @@ export const designContract = {
60
66
  required: true,
61
67
  gate: "design-gate",
62
68
  template: "开发切片计划.md",
63
- depends_on: ["database_design", "api_specification"],
69
+ requires: [{ kind: "design_doc" }, { kind: "database_design", when: "scope:persistence" }, { kind: "api_spec", when: "scope:api" }],
64
70
  },
65
71
  ],
66
72
  requires_upstream: [],
67
- entry_triggers: ["做新系统", "加新功能", "设计方案", "架构", "需求", "设计", "规划", "分析"],
68
73
  };
69
74
  //# sourceMappingURL=contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../src/domain/design/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,YAAY;AACZ,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,UAAU;IACvB,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,sBAAsB;YAC5B,YAAY,EAAE,sBAAsB;YACpC,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,IAAI,EAAE,gBAAgB;YACtB,YAAY,EAAE,2BAA2B;YACzC,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,IAAI,EAAE,YAAY;YAClB,YAAY,EAAE,gCAAgC;YAC9C,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,SAAS;YACnB,UAAU,EAAE,CAAC,gCAAgC,CAAC;SAC/C;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,YAAY,EAAE,2BAA2B;YACzC,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,YAAY;YACtB,eAAe,EAAE,CAAC,wBAAwB,CAAC;SAC5C;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,YAAY,EAAE,6BAA6B;YAC3C,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,cAAc;YACxB,eAAe,EAAE,CAAC,uBAAuB,CAAC;SAC3C;QACD;YACE,IAAI,EAAE,YAAY;YAClB,YAAY,EAAE,gCAAgC;YAC9C,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,WAAW;YACrB,UAAU,EAAE,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;SACrD;KACF;IACD,iBAAiB,EAAE,EAAE;IACrB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;CACvE,CAAC"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../src/domain/design/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,YAAY;AACZ,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,UAAU;IACvB,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,sBAAsB;YAC5B,YAAY,EAAE,sBAAsB;YACpC,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,IAAI,EAAE,gBAAgB;YACtB,YAAY,EAAE,gCAAgC;YAC9C,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,gBAAgB;YAC3B,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,IAAI,EAAE,YAAY;YAClB,YAAY,EAAE,gCAAgC;YAC9C,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,WAAW;YACrB,UAAU,EAAE,CAAC,gCAAgC,CAAC;YAC9C,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;SACjG;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,YAAY,EAAE,2BAA2B;YACzC,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,mBAAmB;YAC9B,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,YAAY;YACtB,eAAe,EAAE,CAAC,wBAAwB,CAAC;YAC3C,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;SACnC;QACD;YACE,IAAI,EAAE,UAAU;YAChB,YAAY,EAAE,6BAA6B;YAC3C,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,WAAW;YACtB,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,cAAc;YACxB,eAAe,EAAE,CAAC,uBAAuB,CAAC;YAC1C,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;SAC/I;QACD;YACE,IAAI,EAAE,YAAY;YAClB,YAAY,EAAE,gCAAgC;YAC9C,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,WAAW;YACrB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;SACpI;KACF;IACD,iBAAiB,EAAE,EAAE;CACtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/domain/design/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAYvD,YAAY;AACZ,qBAAa,YAAa,YAAW,aAAa;IAO9C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAP9B,wFAAwF;IACxF,IAAI,QAAQ,IAAI,cAAc,CAE7B;gBAGkB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM;IAGhC,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAIjD,GAAG,CACP,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,SAAS,CAAC;IAsCf,UAAU,CACd,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,SAAS,CAAC;IAmCrB,aAAa;IACb,OAAO,CAAC,iBAAiB;IAWzB,WAAW;IACX,OAAO,CAAC,kBAAkB;CAG3B"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/domain/design/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAcvD,YAAY;AACZ,qBAAa,YAAa,YAAW,aAAa;IAO9C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAP9B,wFAAwF;IACxF,IAAI,QAAQ,IAAI,cAAc,CAE7B;gBAGkB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM;IAGhC,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAIjD,GAAG,CACP,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,SAAS,CAAC;IAgDf,UAAU,CACd,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,SAAS,CAAC;IA+BrB,aAAa;IACb,OAAO,CAAC,iBAAiB;IAoBzB,WAAW;IACX,OAAO,CAAC,kBAAkB;CAG3B"}
@@ -11,8 +11,9 @@
11
11
  * 数据流:TaskContext → observe: DerivedState / act: ActResult
12
12
  * 持久化:无(act 只组装 prompt)
13
13
  */
14
+ import { meetsArtifactCondition } from "../../core/condition_evaluators.js";
14
15
  import { designContract } from "./contract.js";
15
- import { loadArtifactTemplate, formatUpstream, buildArtifactPrompt, buildDeliberationPrompt, deliberationRecordPath, deliberationRecordDir, getExtendedContract, } from "../engine_helpers.js";
16
+ import { loadArtifactTemplate, loadArtifactAggregate, formatUpstream, buildArtifactPrompt, buildDeliberationPrompt, deliberationRecordPath, deliberationRecordDir, getExtendedContract, } from "../engine_helpers.js";
16
17
  /** 设计域引擎 */
17
18
  export class DesignEngine {
18
19
  observer;
@@ -40,10 +41,24 @@ export class DesignEngine {
40
41
  // 3. 组装 scope
41
42
  const allowedPaths = this.buildAllowedPaths(artifact);
42
43
  const readOnlyPaths = this.buildReadOnlyPaths();
43
- // 4. 组装 prompt(上游产物 + 模板 + guides 软知识)
44
+ // 4. 注入同域 requires 产物(when 满足的;聚合多页,如 design_doc requires prototype_spec → 聚合所有页端级原型注入)
45
+ const fullUpstream = { ...upstream };
46
+ for (const req of artifact.requires ?? []) {
47
+ if (!meetsArtifactCondition({ condition: req.when }, task.scope))
48
+ continue; // when 不满足不注入(纯后端不注入原型)
49
+ if (fullUpstream[req.kind])
50
+ continue; // 跨域 upstream 已有则不覆盖
51
+ const depArtifact = this.contract.produces.find((a) => a.kind === req.kind);
52
+ if (!depArtifact)
53
+ continue;
54
+ const content = loadArtifactAggregate(this.projectRoot, depArtifact);
55
+ if (content)
56
+ fullUpstream[req.kind] = content;
57
+ }
58
+ // 5. 组装 prompt(上游产物 + 同域依赖 + 模板 + guides 软知识)
44
59
  const prompt = buildArtifactPrompt(task.intent, artifact, {
45
60
  templateContent,
46
- upstreamSection: formatUpstream(upstream),
61
+ upstreamSection: formatUpstream(fullUpstream),
47
62
  guidanceSection,
48
63
  }, `严格按照模板结构产出内容。确保通过「${artifact.gate}」门禁检查。\n所有注释和日志使用中文。`, feedback);
49
64
  return {
@@ -63,18 +78,14 @@ export class DesignEngine {
63
78
  const templateContent = loadArtifactTemplate(this.projectRoot, this.contract.name, "研讨记录.md");
64
79
  const recordPath = deliberationRecordPath(this.contract.name, artifact);
65
80
  const prompt = buildDeliberationPrompt(task.intent, artifact, { templateContent, upstreamSection: formatUpstream(upstream) }, recordPath);
66
- // ① db/api 按需产出研讨:design_doc 须在对话框与用户确认 database_design/api_specification 是否需要,
67
- // 结论写进 §8「产物适用性声明」。声明「适用」→ 强制产出;「不适用」→ 放行(前端/无后端按需不产)。
68
- const dbApiDeliberation = target === "design_doc"
69
- ? `\n## db/api 产物适用性研讨(必研讨,design_doc §8「产物适用性声明」须据此填写)\n本项目是否需要 database_design / api_specification?逐点与用户对话框研讨:\n1. **是否有后端持久化/数据库**?— 有 → database_design「适用」;纯前端/无持久化 → 「不适用」\n2. **是否有对外 API / 前后端接口**?— 有 → api_specification「适用」;纯内部模块/无接口 → 「不适用」\n3. 收敛结论写进 design_doc §8:\`数据库设计文档:适用/不适用 — 依据:...\`、\`API接口规格文档:适用/不适用 — 依据:...\`\n> 声明「适用」须产出对应产物(XVAL-DBAPI-APPLICABILITY / BLD-DBAPI 强制);「不适用」放行。`
70
- : "";
81
+ // ① db/api 是否产出由 task.scope(start 第零步定 scope.persistence/scope.api)决定,不再在 design_doc deliberate 研讨。
71
82
  // ② 系统形态研讨:requirement_analysis 须在对话框与用户确认是否前后端、几个端、各端技术栈,
72
83
  // 结论写进 §9「系统形态与交付边界」(端清单 FE-*)。涉及前端时强制留痕研讨记录(REQ-DELIB)。
73
84
  const systemFormDeliberation = target === "requirement_analysis"
74
85
  ? `\n## 系统形态研讨(必研讨,需求分析 §9「系统形态与交付边界」须据此填写)\n本项目是什么形态?逐点与用户对话框研讨(不可 AI 代决):\n1. **系统形态**:纯后端 API / 前后端分离 / 多端 / 纯前端?\n2. **有几个端**(若有前端)?逐端命名(单段 FE-* ID:FE-client-01/FE-admin-01,禁多段横杠)+ 各端技术栈(如 Vue3+TS+Vite / uni-app)+ 职责\n3. **前后端契约方式**:RESTful / GraphQL / BFF?\n4. 收敛结论写进需求 §9:系统形态 + 端清单表格(FE-* ID/端名/技术栈/职责/本期交付)+ 交付边界\n> 涉及前端时须留痕研讨记录(REQ-DELIB 强制,docs/研讨记录/设计/需求分析-研讨记录.md);纯后端 API 端清单留空。下游架构 §6.3 据端清单模块化前端(FE-*)。`
75
86
  : "";
76
87
  return {
77
- prompt: prompt + dbApiDeliberation + systemFormDeliberation,
88
+ prompt: prompt + systemFormDeliberation,
78
89
  template: "研讨记录.md",
79
90
  scope: {
80
91
  allowed_paths: [deliberationRecordDir(this.contract.name)],
@@ -86,7 +97,17 @@ export class DesignEngine {
86
97
  /** 允许写入路径 */
87
98
  buildAllowedPaths(artifact) {
88
99
  // 设计域产物都在 docs/ 下;附件(companion_files)目录也纳入 scope(bundle 完整产出,通用,不硬编码)
89
- const dir = artifact.path_pattern.includes("/") ? artifact.path_pattern.split("/").slice(0, -1).join("/") : "docs";
100
+ // glob path_pattern(如 docs/analyze/*/pages/*-原型说明.md)取首个 * 前的固定前缀(docs/analyze),避免 isPathInScope 整串匹配漏匹配
101
+ let dir;
102
+ if (artifact.path_pattern.includes("*")) {
103
+ const starIdx = artifact.path_pattern.indexOf("*");
104
+ const prefix = artifact.path_pattern.slice(0, starIdx);
105
+ const lastSlash = prefix.lastIndexOf("/");
106
+ dir = lastSlash >= 0 ? prefix.slice(0, lastSlash) : prefix || "docs";
107
+ }
108
+ else {
109
+ dir = artifact.path_pattern.includes("/") ? artifact.path_pattern.split("/").slice(0, -1).join("/") : "docs";
110
+ }
90
111
  const paths = new Set([dir || "docs"]);
91
112
  for (const cf of artifact.companion_files ?? []) {
92
113
  const cfDir = cf.includes("/") ? cf.split("/").slice(0, -1).join("/") : cf;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/domain/design/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/domain/design/engine.ts"],"names":[],"mappings":"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"}
@@ -13,11 +13,6 @@
13
13
  * 持久化:只读本地文件(templates/)
14
14
  */
15
15
  import type { ArtifactDeclaration, DomainContract } from "../core/types.js";
16
- /**
17
- * 加载工程指导(guidance)。两级注入:
18
- * 一级:该域+shared下所有 guidance 的标题摘要
19
- * 二级:triggers 匹配 intent 的文件全文注入
20
- */
21
16
  export declare function loadGuidance(projectRoot: string, domain: string, intent: string, artifactKind?: string, builtinRoot?: string): {
22
17
  summary: string;
23
18
  fullText: string;
@@ -31,6 +26,20 @@ export declare function loadGuidance(projectRoot: string, domain: string, intent
31
26
  * templateName 为空时返回 ""。
32
27
  */
33
28
  export declare function loadArtifactTemplate(projectRoot: string, domainName: string, templateName: string, builtinRoot?: string): string;
29
+ /**
30
+ * 聚合加载产物的所有匹配文件(glob 多份,如 prototype_spec 多端多页)。
31
+ * 用于同域 requires 产物注入(design_doc requires prototype_spec → 聚合所有页注入 prompt)。
32
+ * 截断:每份 4000 字、总 12000 字(避免 prompt 膨胀)。读不到返回 undefined。
33
+ */
34
+ export declare function loadArtifactAggregate(projectRoot: string, artifact: {
35
+ path_pattern: string;
36
+ }): string | undefined;
37
+ /**
38
+ * 解析切片对应的页级原型说明文件路径(相对 projectRoot)。
39
+ * 读 slice_plan 定位 ### {sliceId} 块,提取「对应原型页面」{端}/{slug},拼 docs/analyze/{端}/pages/{slug}-原型说明.md。
40
+ * 用于 build act 注入本切片对应页 UI 约束(切片确定性消费页级原型)。找不到返回 []。
41
+ */
42
+ export declare function resolveSlicePrototypePages(sliceId: string, projectRoot: string): string[];
34
43
  /**
35
44
  * 格式化上游产物为 prompt 段。无上游时返回空字符串。
36
45
  */
@@ -1 +1 @@
1
- {"version":3,"file":"engine_helpers.d.ts","sourceRoot":"","sources":["../../src/domain/engine_helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAS5E;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,WAAW,GAAE,MAAqB,GAAG;IAC5I,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC/E,CAuDA;AA6CD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,WAAW,GAAE,MAAqB,GACjC,MAAM,CAYR;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAIvE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC9D,QAAQ,EAAE;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,EACvF,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CA2BR;AAKD,uCAAuC;AACvC,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAIjG;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC9D,QAAQ,EAAE;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,EAC9D,gBAAgB,EAAE,MAAM,GACvB,MAAM,CA4CR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,mBAAmB,EAAE,CA4B3F;AAED,mGAAmG;AACnG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,cAAc,CAI7F;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,GAAG,SAAS,GACxD,MAAM,EAAE,CAIV;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhF"}
1
+ {"version":3,"file":"engine_helpers.d.ts","sourceRoot":"","sources":["../../src/domain/engine_helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAoB5E,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,WAAW,GAAE,MAAqB,GAAG;IAC5I,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC/E,CA4DA;AA6CD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,WAAW,GAAE,MAAqB,GACjC,MAAM,CAYR;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,GAAG,SAAS,CAoBjH;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAoBzF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAIvE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC9D,QAAQ,EAAE;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,EACvF,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CA2BR;AAKD,uCAAuC;AACvC,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAIjG;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC9D,QAAQ,EAAE;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,EAC9D,gBAAgB,EAAE,MAAM,GACvB,MAAM,CA4CR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,mBAAmB,EAAE,CA4B3F;AAED,mGAAmG;AACnG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,cAAc,CAI7F;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,GAAG,SAAS,GACxD,MAAM,EAAE,CAIV;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhF"}
@@ -19,6 +19,8 @@ import { fileURLToPath } from "node:url";
19
19
  import matter from "gray-matter";
20
20
  import { discoverSourceRoots } from "../gate/scope_resolver.js";
21
21
  import { getHeadHash } from "../core/git_utils.js";
22
+ import { containsGlob, resolveArtifactsByGlob } from "../shared/glob_path.js";
23
+ import { safeTruncate } from "../shared/helpers.js";
22
24
  /** SoloForge 包根(dist/domain/ → 包根)。定位内置 templates,与 gate_registry_bridge 一致。
23
25
  * 修定位 bug:原 loadGuidance/loadArtifactTemplate 用 resolve(projectRoot,"templates"),
24
26
  * 生产环境 projectRoot=客户项目根,找不到内置 templates(潜伏不一致,gate_registry_bridge 注释自述)。 */
@@ -28,7 +30,15 @@ const BUILTIN_ROOT = resolve(dirname(fileURLToPath(import.meta.url)), "..", ".."
28
30
  * 一级:该域+shared下所有 guidance 的标题摘要
29
31
  * 二级:triggers 匹配 intent 的文件全文注入
30
32
  */
33
+ // P5:loadGuidance TTL 缓存(原每次 act/verify 读 4 目录 + gray-matter 解析每文件;
34
+ // 同 task 同 intent,TTL 10s 内共享——文件读+matter 是主要开销,fullText 匹配内存快)
35
+ const _guidanceCache = new Map();
36
+ const GUIDANCE_CACHE_TTL_MS = 10_000;
31
37
  export function loadGuidance(projectRoot, domain, intent, artifactKind, builtinRoot = BUILTIN_ROOT) {
38
+ const _cacheKey = `${builtinRoot}|${projectRoot}|${domain}|${artifactKind ?? ""}|${intent}`;
39
+ const _cached = _guidanceCache.get(_cacheKey);
40
+ if (_cached && Date.now() - _cached.ts < GUIDANCE_CACHE_TTL_MS)
41
+ return _cached.result;
32
42
  // 内置根(import.meta 定位包根;原 resolve(projectRoot,"templates") 在生产找客户项目/templates 失败)
33
43
  // + 用户目录:项目 .soloforge/knowledge/ + 全局 ~/.soloforge/patterns/,用户 guidance 自动注入(软下限)
34
44
  const dirs = [
@@ -80,7 +90,9 @@ export function loadGuidance(projectRoot, domain, intent, artifactKind, builtinR
80
90
  });
81
91
  const fullText = applyInjectionBudget(matched, intentLower);
82
92
  const checklist = allGuidance.map((g) => ({ id: g.id, title: g.title }));
83
- return { summary, fullText, checklist };
93
+ const _result = { summary, fullText, checklist };
94
+ _guidanceCache.set(_cacheKey, { result: _result, ts: Date.now() });
95
+ return _result;
84
96
  }
85
97
  /** 注入预算常量(字符近似:8000 字符约 2-4K token,远低于主流模型上下文) */
86
98
  const GUIDANCE_BUDGET_MAX_CHARS = 8000;
@@ -105,13 +117,13 @@ function applyInjectionBudget(matched, intentLower) {
105
117
  const body = g.content.trim();
106
118
  if (body.length > GUIDANCE_SINGLE_MAX_CHARS) {
107
119
  // 单条超限:裁剪保留前 200 字 + 裁剪标记
108
- const truncated = body.substring(0, GUIDANCE_TRUNCATE_PREVIEW) + `\n\n... [全文已裁剪,共 ${body.length} 字符]`;
120
+ const truncated = safeTruncate(body, GUIDANCE_TRUNCATE_PREVIEW, `\n\n... [全文已裁剪,共 ${body.length} 字符]`);
109
121
  parts.push(`### ${g.title}\n${truncated}`);
110
122
  totalChars += truncated.length;
111
123
  }
112
124
  else if (totalChars + body.length > GUIDANCE_BUDGET_MAX_CHARS) {
113
125
  // 总预算超限:降级为仅摘要行
114
- parts.push(`### ${g.title}\n> [注入预算已满,仅摘要] ${body.substring(0, 100)}...`);
126
+ parts.push(`### ${g.title}\n> [注入预算已满,仅摘要] ${safeTruncate(body, 100, "...")}`);
115
127
  totalChars += 150;
116
128
  }
117
129
  else {
@@ -140,6 +152,63 @@ export function loadArtifactTemplate(projectRoot, domainName, templateName, buil
140
152
  }
141
153
  return "";
142
154
  }
155
+ /**
156
+ * 聚合加载产物的所有匹配文件(glob 多份,如 prototype_spec 多端多页)。
157
+ * 用于同域 requires 产物注入(design_doc requires prototype_spec → 聚合所有页注入 prompt)。
158
+ * 截断:每份 4000 字、总 12000 字(避免 prompt 膨胀)。读不到返回 undefined。
159
+ */
160
+ export function loadArtifactAggregate(projectRoot, artifact) {
161
+ const paths = containsGlob(artifact.path_pattern)
162
+ ? resolveArtifactsByGlob(projectRoot, artifact.path_pattern)
163
+ : (existsSync(join(projectRoot, artifact.path_pattern)) ? [artifact.path_pattern] : []);
164
+ if (paths.length === 0)
165
+ return undefined;
166
+ const parts = [];
167
+ let total = 0;
168
+ for (const p of paths) {
169
+ if (total >= 12000) { // 循环开头判预算(原 push 后判,首份满载时第 4 份才触发 total>12000,实际聚合可达 ~16000,预算门失效)
170
+ parts.push(`...(还有 ${paths.length - parts.length + 1} 份未聚合,见 ${artifact.path_pattern})`);
171
+ break;
172
+ }
173
+ try {
174
+ const content = readFileSync(join(projectRoot, p), "utf-8");
175
+ const truncated = content.length > 4000 ? safeTruncate(content, 4000, "\n...(该份截断)") : content;
176
+ parts.push(`### ${p}\n${truncated}`);
177
+ total += truncated.length;
178
+ }
179
+ catch { /* 单份读失败跳过 */ }
180
+ }
181
+ return parts.length > 0 ? parts.join("\n\n") : undefined;
182
+ }
183
+ /**
184
+ * 解析切片对应的页级原型说明文件路径(相对 projectRoot)。
185
+ * 读 slice_plan 定位 ### {sliceId} 块,提取「对应原型页面」{端}/{slug},拼 docs/analyze/{端}/pages/{slug}-原型说明.md。
186
+ * 用于 build act 注入本切片对应页 UI 约束(切片确定性消费页级原型)。找不到返回 []。
187
+ */
188
+ export function resolveSlicePrototypePages(sliceId, projectRoot) {
189
+ const slicePlanPath = join(projectRoot, "docs/architecture/02-开发切片计划.md");
190
+ if (!existsSync(slicePlanPath))
191
+ return [];
192
+ const content = readFileSync(slicePlanPath, "utf-8");
193
+ const blocks = content.split(/^###\s+(SLC-\S+)/m);
194
+ for (let i = 1; i < blocks.length; i += 2) {
195
+ if (blocks[i] !== sliceId)
196
+ continue;
197
+ const body = blocks[i + 1] ?? "";
198
+ const pageMatch = body.match(/^\|\s*对应原型页面\s*\|\s*(.+?)\s*\|/m);
199
+ const pageValue = pageMatch?.[1]?.trim();
200
+ if (!pageValue || pageValue === "无")
201
+ return [];
202
+ return pageValue
203
+ .split(/[,,]/).map((s) => s.trim()).filter(Boolean)
204
+ .map((binding) => {
205
+ const m = binding.match(/^([a-zA-Z0-9_-]+)\/([a-zA-Z0-9_-]+)$/);
206
+ return m ? join("docs/analyze", m[1], "pages", `${m[2]}-原型说明.md`) : null;
207
+ })
208
+ .filter((p) => p !== null);
209
+ }
210
+ return [];
211
+ }
143
212
  /**
144
213
  * 格式化上游产物为 prompt 段。无上游时返回空字符串。
145
214
  */
@@ -191,7 +260,7 @@ export function deliberationRecordDir(domain) {
191
260
  */
192
261
  export function deliberationRecordPath(domain, artifact) {
193
262
  const base = artifact.path_pattern.split("/").pop() || "产物";
194
- const product = base.replace(/\.md$/, "").replace(/^\d+-/, "");
263
+ const product = base.replace(/\.md$/, "").replace(/^\d+-/, "").replace(/\*/g, "").replace(/^-+/, "");
195
264
  return `${deliberationRecordDir(domain)}${product}-研讨记录.md`;
196
265
  }
197
266
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"engine_helpers.js","sourceRoot":"","sources":["../../src/domain/engine_helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine_helpers.js","sourceRoot":"","sources":["../../src/domain/engine_helpers.ts"],"names":[],"mappings":"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"}
@@ -140,7 +140,7 @@ export interface PromptInjectionPlan {
140
140
  }
141
141
  /** 禁止直接注入 prompt 的材料类型(全量大文件/非结构化,幻觉风险)。
142
142
  * 边界澄清:image/figma 在此禁止「直接塞 prompt」,但不阻碍「AI 把图片/源码/html 作为原型说明
143
- * (docs/analyze/{端}/01-原型说明.md)的提取输入」——提取是客户端 AI 动作(看图→结构化文档),
143
+ * (docs/analyze/{端}/pages/{页}-原型说明.md)的提取输入」——提取是客户端 AI 动作(看图→结构化文档),
144
144
  * 不走引擎注入路径;引擎零 LLM,不直接处理图片内容。详见 [[确定性边界原则]]。 */
145
145
  export declare const FORBIDDEN_SOURCE_KINDS: MaterialKind[];
146
146
  /** 禁止注入 prompt 的来源前缀列表 */
@@ -210,7 +210,7 @@ export function detectIngestionWarnings(material) {
210
210
  }
211
211
  /** 禁止直接注入 prompt 的材料类型(全量大文件/非结构化,幻觉风险)。
212
212
  * 边界澄清:image/figma 在此禁止「直接塞 prompt」,但不阻碍「AI 把图片/源码/html 作为原型说明
213
- * (docs/analyze/{端}/01-原型说明.md)的提取输入」——提取是客户端 AI 动作(看图→结构化文档),
213
+ * (docs/analyze/{端}/pages/{页}-原型说明.md)的提取输入」——提取是客户端 AI 动作(看图→结构化文档),
214
214
  * 不走引擎注入路径;引擎零 LLM,不直接处理图片内容。详见 [[确定性边界原则]]。 */
215
215
  export const FORBIDDEN_SOURCE_KINDS = ["figma", "image"];
216
216
  /** 禁止注入 prompt 的来源前缀列表 */
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../src/domain/operate/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,YAAY;AACZ,eAAO,MAAM,eAAe,EAAE,cAgC7B,CAAC"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../src/domain/operate/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,YAAY;AACZ,eAAO,MAAM,eAAe,EAAE,cAsC7B,CAAC"}
@@ -18,17 +18,19 @@ export const operateContract = {
18
18
  produces: [
19
19
  {
20
20
  kind: "deploy_config",
21
- path_pattern: "deploy/",
21
+ path_pattern: "deploy/部署配置.md",
22
22
  required: true,
23
23
  gate: "operate-gate",
24
24
  template: "部署配置.md",
25
+ companion_files: ["deploy/docker-compose.yml"],
25
26
  },
26
27
  {
27
28
  kind: "release_note",
28
29
  path_pattern: "docs/audits/04-发布说明.md",
29
- required: false,
30
+ required: true,
30
31
  gate: "operate-gate",
31
32
  template: "发布说明.md",
33
+ requires: [{ kind: "deploy_config" }],
32
34
  },
33
35
  ],
34
36
  requires_upstream: [
@@ -42,7 +44,11 @@ export const operateContract = {
42
44
  artifact_kind: "code",
43
45
  condition: "always",
44
46
  },
47
+ {
48
+ from_domain: "verify",
49
+ artifact_kind: "test_report",
50
+ condition: "scope:code",
51
+ },
45
52
  ],
46
- entry_triggers: ["部署", "上线", "发布", "运维", "监控", "扩容", "回滚", "线上"],
47
53
  };
48
54
  //# sourceMappingURL=contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../src/domain/operate/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,YAAY;AACZ,MAAM,CAAC,MAAM,eAAe,GAAmB;IAC7C,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,SAAS;IACtB,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,eAAe;YACrB,YAAY,EAAE,SAAS;YACvB,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,IAAI,EAAE,cAAc;YACpB,YAAY,EAAE,wBAAwB;YACtC,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,SAAS;SACpB;KACF;IACD,iBAAiB,EAAE;QACjB;YACE,WAAW,EAAE,QAAQ;YACrB,aAAa,EAAE,eAAe;YAC9B,SAAS,EAAE,QAAQ;SACpB;QACD;YACE,WAAW,EAAE,OAAO;YACpB,aAAa,EAAE,MAAM;YACrB,SAAS,EAAE,QAAQ;SACpB;KACF;IACD,cAAc,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;CACjE,CAAC"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../src/domain/operate/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,YAAY;AACZ,MAAM,CAAC,MAAM,eAAe,GAAmB;IAC7C,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,SAAS;IACtB,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,eAAe;YACrB,YAAY,EAAE,gBAAgB;YAC9B,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,SAAS;YACnB,eAAe,EAAE,CAAC,2BAA2B,CAAC;SAC/C;QACD;YACE,IAAI,EAAE,cAAc;YACpB,YAAY,EAAE,wBAAwB;YACtC,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;SACtC;KACF;IACD,iBAAiB,EAAE;QACjB;YACE,WAAW,EAAE,QAAQ;YACrB,aAAa,EAAE,eAAe;YAC9B,SAAS,EAAE,QAAQ;SACpB;QACD;YACE,WAAW,EAAE,OAAO;YACpB,aAAa,EAAE,MAAM;YACrB,SAAS,EAAE,QAAQ;SACpB;QACD;YACE,WAAW,EAAE,QAAQ;YACrB,aAAa,EAAE,aAAa;YAC5B,SAAS,EAAE,YAAY;SACxB;KACF;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../src/domain/verify/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,YAAY;AACZ,eAAO,MAAM,cAAc,EAAE,cAgC5B,CAAC"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../src/domain/verify/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,YAAY;AACZ,eAAO,MAAM,cAAc,EAAE,cAqC5B,CAAC"}