soloforge 1.1.47 → 1.1.48

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 (182) hide show
  1. package/README.md +11 -7
  2. package/dist/cli/adapter_writers.d.ts +5 -0
  3. package/dist/cli/adapter_writers.d.ts.map +1 -1
  4. package/dist/cli/adapter_writers.js +25 -0
  5. package/dist/cli/adapter_writers.js.map +1 -1
  6. package/dist/cli/init.d.ts.map +1 -1
  7. package/dist/cli/init.js +3 -1
  8. package/dist/cli/init.js.map +1 -1
  9. package/dist/cli/scope_check.d.ts +4 -0
  10. package/dist/cli/scope_check.d.ts.map +1 -0
  11. package/dist/cli/scope_check.js +41 -0
  12. package/dist/cli/scope_check.js.map +1 -0
  13. package/dist/context/adapters/claude_code/hooks.d.ts +5 -7
  14. package/dist/context/adapters/claude_code/hooks.d.ts.map +1 -1
  15. package/dist/context/adapters/claude_code/hooks.js +11 -9
  16. package/dist/context/adapters/claude_code/hooks.js.map +1 -1
  17. package/dist/context/adapters/shared/integration_guide.js +15 -5
  18. package/dist/context/adapters/shared/integration_guide.js.map +1 -1
  19. package/dist/context/adapters/shared/workflow_template.js +1 -1
  20. package/dist/context/config/intent_schema.d.ts +793 -6
  21. package/dist/context/config/intent_schema.d.ts.map +1 -1
  22. package/dist/context/config/intent_schema.js +9 -0
  23. package/dist/context/config/intent_schema.js.map +1 -1
  24. package/dist/context/config/resolver.d.ts +9 -0
  25. package/dist/context/config/resolver.d.ts.map +1 -1
  26. package/dist/context/config/resolver.js +5 -0
  27. package/dist/context/config/resolver.js.map +1 -1
  28. package/dist/core/adversarial_review_store.d.ts +133 -0
  29. package/dist/core/adversarial_review_store.d.ts.map +1 -0
  30. package/dist/core/adversarial_review_store.js +161 -0
  31. package/dist/core/adversarial_review_store.js.map +1 -0
  32. package/dist/core/domain_transition.d.ts.map +1 -1
  33. package/dist/core/domain_transition.js +3 -0
  34. package/dist/core/domain_transition.js.map +1 -1
  35. package/dist/core/gate_record_store.d.ts +2 -0
  36. package/dist/core/gate_record_store.d.ts.map +1 -1
  37. package/dist/core/gate_record_store.js +8 -0
  38. package/dist/core/gate_record_store.js.map +1 -1
  39. package/dist/core/git_utils.d.ts +1 -1
  40. package/dist/core/git_utils.js +1 -1
  41. package/dist/core/observer.d.ts.map +1 -1
  42. package/dist/core/observer.js +26 -2
  43. package/dist/core/observer.js.map +1 -1
  44. package/dist/core/task_context/constants.js +1 -1
  45. package/dist/core/task_context/constants.js.map +1 -1
  46. package/dist/core/task_context/manager.d.ts +4 -0
  47. package/dist/core/task_context/manager.d.ts.map +1 -1
  48. package/dist/core/task_context/manager.js +48 -30
  49. package/dist/core/task_context/manager.js.map +1 -1
  50. package/dist/core/task_context/manager_setters.d.ts +2 -0
  51. package/dist/core/task_context/manager_setters.d.ts.map +1 -1
  52. package/dist/core/task_context/manager_setters.js +10 -0
  53. package/dist/core/task_context/manager_setters.js.map +1 -1
  54. package/dist/core/types.d.ts +19 -0
  55. package/dist/core/types.d.ts.map +1 -1
  56. package/dist/domain/asset_registry/derived_types.d.ts +17 -0
  57. package/dist/domain/asset_registry/derived_types.d.ts.map +1 -1
  58. package/dist/domain/build/engine.d.ts +1 -0
  59. package/dist/domain/build/engine.d.ts.map +1 -1
  60. package/dist/domain/build/engine.js +34 -4
  61. package/dist/domain/build/engine.js.map +1 -1
  62. package/dist/domain/contracts/design_lifecycle_contract.d.ts.map +1 -1
  63. package/dist/domain/contracts/design_lifecycle_contract.js +11 -4
  64. package/dist/domain/contracts/design_lifecycle_contract.js.map +1 -1
  65. package/dist/domain/design/contract.d.ts.map +1 -1
  66. package/dist/domain/design/contract.js +11 -0
  67. package/dist/domain/design/contract.js.map +1 -1
  68. package/dist/domain/design/engine.d.ts +1 -0
  69. package/dist/domain/design/engine.d.ts.map +1 -1
  70. package/dist/domain/design/engine.js +35 -3
  71. package/dist/domain/design/engine.js.map +1 -1
  72. package/dist/domain/engine_helpers.d.ts +37 -0
  73. package/dist/domain/engine_helpers.d.ts.map +1 -1
  74. package/dist/domain/engine_helpers.js +86 -0
  75. package/dist/domain/engine_helpers.js.map +1 -1
  76. package/dist/domain/operate/engine.d.ts +1 -0
  77. package/dist/domain/operate/engine.d.ts.map +1 -1
  78. package/dist/domain/operate/engine.js +19 -2
  79. package/dist/domain/operate/engine.js.map +1 -1
  80. package/dist/domain/types.d.ts +6 -0
  81. package/dist/domain/types.d.ts.map +1 -1
  82. package/dist/domain/types.js.map +1 -1
  83. package/dist/domain/verify/engine.d.ts +1 -0
  84. package/dist/domain/verify/engine.d.ts.map +1 -1
  85. package/dist/domain/verify/engine.js +18 -1
  86. package/dist/domain/verify/engine.js.map +1 -1
  87. package/dist/gate/contracts/tool_actions.d.ts +2 -2
  88. package/dist/gate/contracts/tool_actions.d.ts.map +1 -1
  89. package/dist/gate/contracts/tool_actions.js +2 -2
  90. package/dist/gate/contracts/tool_actions.js.map +1 -1
  91. package/dist/gate/contracts/tool_invocation_contract_registry.js +1 -1
  92. package/dist/gate/contracts/tool_invocation_contract_registry.js.map +1 -1
  93. package/dist/gate/executors/executors_artifact.d.ts +19 -0
  94. package/dist/gate/executors/executors_artifact.d.ts.map +1 -1
  95. package/dist/gate/executors/executors_artifact.js +100 -3
  96. package/dist/gate/executors/executors_artifact.js.map +1 -1
  97. package/dist/gate/executors/executors_build.d.ts.map +1 -1
  98. package/dist/gate/executors/executors_build.js +17 -15
  99. package/dist/gate/executors/executors_build.js.map +1 -1
  100. package/dist/gate/executors/executors_external_command.d.ts.map +1 -1
  101. package/dist/gate/executors/executors_external_command.js +32 -0
  102. package/dist/gate/executors/executors_external_command.js.map +1 -1
  103. package/dist/gate/executors/executors_field_mapping.d.ts +7 -0
  104. package/dist/gate/executors/executors_field_mapping.d.ts.map +1 -0
  105. package/dist/gate/executors/executors_field_mapping.js +179 -0
  106. package/dist/gate/executors/executors_field_mapping.js.map +1 -0
  107. package/dist/gate/executors/executors_prerequisite.js +1 -1
  108. package/dist/gate/executors/executors_regex_scan.d.ts.map +1 -1
  109. package/dist/gate/executors/executors_regex_scan.js +34 -13
  110. package/dist/gate/executors/executors_regex_scan.js.map +1 -1
  111. package/dist/gate/executors/executors_scope.js +4 -4
  112. package/dist/gate/executors/executors_scope.js.map +1 -1
  113. package/dist/gate/executors/executors_trace.d.ts +5 -0
  114. package/dist/gate/executors/executors_trace.d.ts.map +1 -1
  115. package/dist/gate/executors/executors_trace.js +184 -3
  116. package/dist/gate/executors/executors_trace.js.map +1 -1
  117. package/dist/gate/executors/index.d.ts.map +1 -1
  118. package/dist/gate/executors/index.js +2 -0
  119. package/dist/gate/executors/index.js.map +1 -1
  120. package/dist/gate/gate_engine.d.ts +9 -0
  121. package/dist/gate/gate_engine.d.ts.map +1 -1
  122. package/dist/gate/gate_engine.js +15 -0
  123. package/dist/gate/gate_engine.js.map +1 -1
  124. package/dist/gate/gate_registry_bridge.d.ts +2 -2
  125. package/dist/gate/gate_registry_bridge.d.ts.map +1 -1
  126. package/dist/gate/gate_registry_bridge.js +6 -3
  127. package/dist/gate/gate_registry_bridge.js.map +1 -1
  128. package/dist/gate/middleware_gates.js +1 -1
  129. package/dist/gate/middleware_gates.js.map +1 -1
  130. package/dist/gate/scope_resolver.d.ts +7 -0
  131. package/dist/gate/scope_resolver.d.ts.map +1 -1
  132. package/dist/gate/scope_resolver.js +1 -1
  133. package/dist/gate/scope_resolver.js.map +1 -1
  134. package/dist/index.js +5 -0
  135. package/dist/index.js.map +1 -1
  136. package/dist/server/tools/sf_doctor.d.ts +1 -0
  137. package/dist/server/tools/sf_doctor.d.ts.map +1 -1
  138. package/dist/server/tools/sf_doctor.js +20 -0
  139. package/dist/server/tools/sf_doctor.js.map +1 -1
  140. package/dist/server/tools/sf_task.d.ts +83 -0
  141. package/dist/server/tools/sf_task.d.ts.map +1 -1
  142. package/dist/server/tools/sf_task.js +121 -4
  143. package/dist/server/tools/sf_task.js.map +1 -1
  144. package/dist/server/tools/sf_work.d.ts +203 -0
  145. package/dist/server/tools/sf_work.d.ts.map +1 -1
  146. package/dist/server/tools/sf_work.js +531 -40
  147. package/dist/server/tools/sf_work.js.map +1 -1
  148. package/dist/shared/traceability_id_utils.js +3 -3
  149. package/dist/shared/traceability_id_utils.js.map +1 -1
  150. package/dist/verify/contracts/decision_workshop.d.ts.map +1 -1
  151. package/dist/verify/contracts/decision_workshop.js +4 -3
  152. package/dist/verify/contracts/decision_workshop.js.map +1 -1
  153. package/package.json +1 -1
  154. package/templates/build/enforced.md +243 -56
  155. package/templates/build//346/263/250/351/207/212/347/272/252/345/276/213.md +48 -0
  156. package/templates/build//346/265/213/350/257/225/350/256/241/345/210/222.md +9 -4
  157. package/templates/build//347/274/226/347/240/201/347/272/252/345/276/213.md +26 -0
  158. package/templates/design/API/346/216/245/345/217/243/350/247/204/346/240/274/346/226/207/346/241/243.md +7 -0
  159. package/templates/design/enforced.md +204 -14
  160. package/templates/design//345/205/250/347/224/237/345/221/275/345/221/250/346/234/237/345/267/245/344/275/234/346/265/201/345/257/274/350/210/252.md +4 -2
  161. package/templates/design//345/210/207/347/211/207/350/247/204/345/210/222.md +2 -0
  162. package/templates/design//345/274/200/345/217/221/345/210/207/347/211/207/350/256/241/345/210/222.md +75 -0
  163. package/templates/design//346/225/260/346/215/256/345/272/223/350/256/276/350/256/241/346/226/207/346/241/243.md +2 -0
  164. package/templates/design//346/236/266/346/236/204/350/256/276/350/256/241.md +24 -0
  165. package/templates/design//350/256/276/350/256/241/345/206/263/347/255/226/347/272/252/345/276/213.md +58 -0
  166. package/templates/design//350/256/276/350/256/241/350/264/250/351/207/217/350/246/201/347/202/271.md +58 -0
  167. package/templates/design//351/234/200/346/261/202/345/210/206/346/236/220.md +24 -0
  168. package/templates/operate/UI/350/247/206/350/247/211/351/252/214/346/224/266/347/272/252/345/276/213.md +74 -0
  169. package/templates/operate/enforced.md +42 -6
  170. package/templates/operate//345/217/221/345/270/203/350/257/264/346/230/216.md +19 -1
  171. package/templates/operate//351/203/250/347/275/262/351/205/215/347/275/256.md +10 -0
  172. package/templates/shared/enforced.md +37 -0
  173. package/templates/shared//345/267/245/344/275/234/346/265/201/345/257/274/350/210/252/345/245/221/347/272/246.md +1 -1
  174. package/templates/shared//347/240/224/350/256/250/350/256/260/345/275/225.md +54 -0
  175. package/templates/verify/enforced.md +84 -263
  176. package/templates/verify//344/272/244/344/273/230/345/256/214/345/244/207/346/200/247/345/256/241/346/237/245.md +1 -0
  177. package/templates/verify//344/273/243/347/240/201/345/256/241/346/237/245/346/212/245/345/221/212.md +10 -0
  178. package/templates/verify//346/236/266/346/236/204/350/257/255/344/271/211/347/272/242/347/272/277.md +60 -0
  179. package/dist/core/scope_checker.d.ts +0 -29
  180. package/dist/core/scope_checker.d.ts.map +0 -1
  181. package/dist/core/scope_checker.js +0 -53
  182. package/dist/core/scope_checker.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/domain/build/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;AASvD,YAAY;AACZ,qBAAa,WAAY,YAAW,aAAa;IAO7C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAP9B,wCAAwC;IACxC,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;CA+BtB"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/domain/build/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;AAevD,YAAY;AACZ,qBAAa,WAAY,YAAW,aAAa;IAO7C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAP9B,wCAAwC;IACxC,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;IA2Cf,UAAU,CACd,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,SAAS,CAAC;CAsBtB"}
@@ -12,7 +12,9 @@
12
12
  * 持久化:无(act 只组装 prompt)
13
13
  */
14
14
  import { buildContract } from "./contract.js";
15
- import { loadArtifactTemplate, formatUpstream, buildArtifactPrompt, getExtendedContract, } from "../engine_helpers.js";
15
+ import { designContract } from "../design/contract.js";
16
+ import { loadArtifactTemplate, formatUpstream, buildArtifactPrompt, buildDeliberationPrompt, deliberationRecordPath, deliberationRecordDir, getExtendedContract, resolveBuildScope, } from "../engine_helpers.js";
17
+ import { resolveConfig } from "../../context/config/resolver.js";
16
18
  /** 构建域引擎 */
17
19
  export class BuildEngine {
18
20
  observer;
@@ -40,13 +42,41 @@ export class BuildEngine {
40
42
  templateContent,
41
43
  upstreamSection: formatUpstream(upstream),
42
44
  guidanceSection,
43
- }, `按照设计文档实现代码。确保通过「${artifact.gate}」门禁检查(编译 + 测试 + 无偷懒模式)。\n所有注释和日志使用中文。禁止 TODO/FIXME 占位。`, feedback);
45
+ }, `按照设计文档实现代码。多工程项目按架构 §6.3 端清单 + intent projects 的工程目录(backend/src/ client-portal/src/ 等)写代码,首个切片先建工程骨架(每工程 src/ + 独立 .gitignore + 构建配置)。确保通过「${artifact.gate}」门禁检查(编译 + 测试 + 无偷懒模式)。\n所有注释和日志使用中文。禁止 TODO/FIXME 占位。`, feedback);
46
+ const config = await resolveConfig(this.projectRoot);
44
47
  return {
45
48
  prompt,
46
49
  template: artifact.template,
47
50
  scope: {
48
- allowed_paths: ["src/", "config/"],
49
- read_only_paths: ["docs/"],
51
+ // allowed 白名单:build 编码范围 + design「按需编码契约」产物(动态从 design contract 派生,单一源)。
52
+ // 取 design contract required:false 产物(api_specification/database_design 等)的 path_pattern + companion_files;
53
+ // 动态派生——design contract 改路径/加按需产物/用户 .soloforge/knowledge 扩展,build 自动跟,无硬编码漂移。
54
+ allowed_paths: [
55
+ ...resolveBuildScope(this.projectRoot, config),
56
+ ...getExtendedContract(designContract, this.projectRoot).produces
57
+ .filter((p) => !p.required)
58
+ .flatMap((p) => [p.path_pattern, ...(p.companion_files ?? [])]),
59
+ ],
60
+ // 去掉原 ["docs/"]:改由 allowed 白名单精准控制(checkScope read_only 优先 allowed,原 docs/ 会先拦 api_spec)。
61
+ // design 核心决策(required:true:架构/需求/切片)+ 研讨记录不在白名单 → deny,build 不能碰(须切回 design 域 act)。
62
+ read_only_paths: [],
63
+ },
64
+ };
65
+ }
66
+ async deliberate(task, target, upstream) {
67
+ const artifact = this.contract.produces.find((a) => a.kind === target);
68
+ if (!artifact) {
69
+ throw new Error(`构建域无 "${target}" 产物。可用:${this.contract.produces.map((a) => a.kind).join(", ")}`);
70
+ }
71
+ const templateContent = loadArtifactTemplate(this.projectRoot, this.contract.name, "研讨记录.md");
72
+ const recordPath = deliberationRecordPath(this.contract.name, artifact);
73
+ const prompt = buildDeliberationPrompt(task.intent, artifact, { templateContent, upstreamSection: formatUpstream(upstream) }, recordPath);
74
+ return {
75
+ prompt,
76
+ template: "研讨记录.md",
77
+ scope: {
78
+ allowed_paths: [deliberationRecordDir(this.contract.name)],
79
+ read_only_paths: ["src/", "config/"],
50
80
  },
51
81
  };
52
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/domain/build/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,YAAY;AACZ,MAAM,OAAO,WAAW;IAOH;IACA;IAPnB,wCAAwC;IACxC,IAAI,QAAQ;QACV,OAAO,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9D,CAAC;IAED,YACmB,QAAkB,EAClB,WAAmB;QADnB,aAAQ,GAAR,QAAQ,CAAU;QAClB,gBAAW,GAAX,WAAW,CAAQ;IACnC,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,IAAiB;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,GAAG,CACP,IAAiB,EACjB,MAAc,EACd,QAAgC,EAChC,QAAiB;QAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,SAAS,MAAM,WAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpG,CAAC;QAED,MAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtG,MAAM,eAAe,GAAG,EAAE,CAAC,CAAC,wCAAwC;QAEpE,8BAA8B;QAC9B,MAAM,MAAM,GAAG,mBAAmB,CAChC,IAAI,CAAC,MAAM,EACX,QAAQ,EACR;YACE,eAAe;YACf,eAAe,EAAE,cAAc,CAAC,QAAQ,CAAC;YACzC,eAAe;SAChB,EACD,mBAAmB,QAAQ,CAAC,IAAI,wDAAwD,EACxF,QAAQ,CACT,CAAC;QAEF,OAAO;YACL,MAAM;YACN,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,KAAK,EAAE;gBACL,aAAa,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;gBAClC,eAAe,EAAE,CAAC,OAAO,CAAC;aAC3B;SACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/domain/build/engine.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"design_lifecycle_contract.d.ts","sourceRoot":"","sources":["../../../src/domain/contracts/design_lifecycle_contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,sBAAsB,GAC5B,qBAAqB,GACrB,sBAAsB,GACtB,qBAAqB,GACrB,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,SAAS,GACT,YAAY,GACZ,UAAU,CAAC;AAEjB,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;AAElF,MAAM,WAAW,yBAAyB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,qBAAqB,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC;IACxD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,4BAA4B;IACzC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACpC,OAAO,EAAE,yBAAyB,EAAE,CAAC;IACrC,WAAW,EAAE,yBAAyB,EAAE,CAAC;IACzC,KAAK,EAAE,qBAAqB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,8BAA8B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,GAAG,UAAU,CAAC;IACnC,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,4BAA4B;IACzC,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,+BAA+B,EAAE,MAAM,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;CACvB;AAGD,eAAO,MAAM,gCAAgC,iEAAmC,CAAC;AAEjF,eAAO,MAAM,0BAA0B,2PAU7B,CAAC;AAoUX,wBAAgB,iCAAiC,IAAI,4BAA4B,EAAE,CAQlF;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,sBAAsB,GAAG,4BAA4B,CAU7G;AAQD,wBAAgB,+BAA+B,IAAI,4BAA4B,CAwB9E;AAED,wBAAgB,+BAA+B,IAAI,8BAA8B,EAAE,CAqFlF"}
1
+ {"version":3,"file":"design_lifecycle_contract.d.ts","sourceRoot":"","sources":["../../../src/domain/contracts/design_lifecycle_contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,sBAAsB,GAC5B,qBAAqB,GACrB,sBAAsB,GACtB,qBAAqB,GACrB,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,SAAS,GACT,YAAY,GACZ,UAAU,CAAC;AAEjB,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;AAElF,MAAM,WAAW,yBAAyB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,qBAAqB,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC;IACxD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,4BAA4B;IACzC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACpC,OAAO,EAAE,yBAAyB,EAAE,CAAC;IACrC,WAAW,EAAE,yBAAyB,EAAE,CAAC;IACzC,KAAK,EAAE,qBAAqB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,8BAA8B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,GAAG,UAAU,CAAC;IACnC,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,4BAA4B;IACzC,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,+BAA+B,EAAE,MAAM,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;CACvB;AAGD,eAAO,MAAM,gCAAgC,iEAAmC,CAAC;AAEjF,eAAO,MAAM,0BAA0B,2PAU7B,CAAC;AA2UX,wBAAgB,iCAAiC,IAAI,4BAA4B,EAAE,CAQlF;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,sBAAsB,GAAG,4BAA4B,CAU7G;AAQD,wBAAgB,+BAA+B,IAAI,4BAA4B,CAwB9E;AAED,wBAAgB,+BAA+B,IAAI,8BAA8B,EAAE,CAqFlF"}
@@ -54,6 +54,13 @@ const LIFECYCLE_STAGES = [
54
54
  required_evidence: ["需求条目已分配 REQ-* 编号"],
55
55
  recovery_command: "sf_doctor",
56
56
  },
57
+ {
58
+ id: "system_form_gate",
59
+ owner: "sf_work",
60
+ blocks: ["涉及前端但需求 §9 系统形态未研讨确认仍生成架构"],
61
+ required_evidence: ["需求 §9 系统形态已研讨(涉及前端时须有研讨记录)"],
62
+ recovery_command: "sf_work",
63
+ },
57
64
  ],
58
65
  },
59
66
  {
@@ -240,8 +247,8 @@ const LIFECYCLE_STAGES = [
240
247
  {
241
248
  id: "implementation_binding_gate",
242
249
  owner: "sf_work",
243
- blocks: ["业务代码变更缺少 PHASE-*、SLICE-*、DD-*、AC-* 绑定"],
244
- required_evidence: ["TaskContext 或意图中绑定 PHASE/SLICE/DD/AC", "changed_files 完整"],
250
+ blocks: ["业务代码变更缺少 PHASE-*、SLICE-*、DD-*、AC-*、FE-* 绑定"],
251
+ required_evidence: ["TaskContext 或意图中绑定 PHASE/SLICE/DD/AC/FE", "changed_files 完整"],
245
252
  recovery_command: "sf_work",
246
253
  },
247
254
  ],
@@ -460,12 +467,12 @@ export function validateDesignLifecycleContract() {
460
467
  }
461
468
  const implementation = getDesignLifecycleStageContract("implementation");
462
469
  const implementationGate = implementation.gates.find((gate) => gate.id === "implementation_binding_gate");
463
- if (!implementationGate || !implementationGate.required_evidence.some((evidence) => evidence.includes("PHASE/SLICE/DD/AC"))) {
470
+ if (!implementationGate || !implementationGate.required_evidence.some((evidence) => evidence.includes("PHASE/SLICE/DD/AC/FE"))) {
464
471
  findings.push({
465
472
  code: "DESIGN_LIFECYCLE_IMPLEMENTATION_BINDING_MISSING",
466
473
  severity: "hard_fail",
467
474
  stage_id: "implementation",
468
- message_zh: "实现阶段缺少 PHASE/SLICE/DD/AC 绑定证据要求",
475
+ message_zh: "实现阶段缺少 PHASE/SLICE/DD/AC/FE 绑定证据要求",
469
476
  });
470
477
  }
471
478
  const testing = getDesignLifecycleStageContract("testing");
@@ -1 +1 @@
1
- {"version":3,"file":"design_lifecycle_contract.js","sourceRoot":"","sources":["../../../src/domain/contracts/design_lifecycle_contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"design_lifecycle_contract.js","sourceRoot":"","sources":["../../../src/domain/contracts/design_lifecycle_contract.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,cAmC5B,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,cA8C5B,CAAC"}
@@ -29,6 +29,7 @@ export const designContract = {
29
29
  required: true,
30
30
  gate: "design-gate",
31
31
  template: "架构设计.md",
32
+ references: ["docs/architecture/00-架构决策记录.md"],
32
33
  },
33
34
  {
34
35
  kind: "database_design",
@@ -36,6 +37,7 @@ export const designContract = {
36
37
  required: false,
37
38
  gate: "design-gate",
38
39
  template: "数据库设计文档.md",
40
+ companion_files: ["docs/design/schema.sql"],
39
41
  },
40
42
  {
41
43
  kind: "api_specification",
@@ -43,6 +45,15 @@ export const designContract = {
43
45
  required: false,
44
46
  gate: "design-gate",
45
47
  template: "API接口规格文档.md",
48
+ companion_files: ["docs/api/openapi.yaml"],
49
+ },
50
+ {
51
+ kind: "slice_plan",
52
+ path_pattern: "docs/architecture/02-开发切片计划.md",
53
+ required: true,
54
+ gate: "design-gate",
55
+ template: "开发切片计划.md",
56
+ depends_on: ["database_design", "api_specification"],
46
57
  },
47
58
  ],
48
59
  requires_upstream: [],
@@ -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,YAAY;YAClB,YAAY,EAAE,gCAAgC;YAC9C,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,YAAY,EAAE,2BAA2B;YACzC,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,YAAY;SACvB;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,YAAY,EAAE,6BAA6B;YAC3C,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,cAAc;SACzB;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,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"}
@@ -24,6 +24,7 @@ export declare class DesignEngine implements IDomainEngine {
24
24
  constructor(observer: Observer, projectRoot: string);
25
25
  observe(task: TaskContext): Promise<DerivedState>;
26
26
  act(task: TaskContext, target: string, upstream: Record<string, string>, feedback?: string): Promise<ActResult>;
27
+ deliberate(task: TaskContext, target: string, upstream: Record<string, string>): Promise<ActResult>;
27
28
  /** 允许写入路径 */
28
29
  private buildAllowedPaths;
29
30
  /** 只读路径 */
@@ -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;AASvD,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;IAwCrB,aAAa;IACb,OAAO,CAAC,iBAAiB;IAMzB,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;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"}
@@ -12,7 +12,7 @@
12
12
  * 持久化:无(act 只组装 prompt)
13
13
  */
14
14
  import { designContract } from "./contract.js";
15
- import { loadArtifactTemplate, formatUpstream, buildArtifactPrompt, getExtendedContract, } from "../engine_helpers.js";
15
+ import { loadArtifactTemplate, formatUpstream, buildArtifactPrompt, buildDeliberationPrompt, deliberationRecordPath, deliberationRecordDir, getExtendedContract, } from "../engine_helpers.js";
16
16
  /** 设计域引擎 */
17
17
  export class DesignEngine {
18
18
  observer;
@@ -55,12 +55,44 @@ export class DesignEngine {
55
55
  },
56
56
  };
57
57
  }
58
+ async deliberate(task, target, upstream) {
59
+ const artifact = this.contract.produces.find((a) => a.kind === target);
60
+ if (!artifact) {
61
+ throw new Error(`设计域无 "${target}" 产物。可用:${this.contract.produces.map((a) => a.kind).join(", ")}`);
62
+ }
63
+ const templateContent = loadArtifactTemplate(this.projectRoot, this.contract.name, "研讨记录.md");
64
+ const recordPath = deliberationRecordPath(this.contract.name, artifact);
65
+ 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
+ : "";
71
+ // ② 系统形态研讨:requirement_analysis 须在对话框与用户确认是否前后端、几个端、各端技术栈,
72
+ // 结论写进 §9「系统形态与交付边界」(端清单 FE-*)。涉及前端时强制留痕研讨记录(REQ-DELIB)。
73
+ const systemFormDeliberation = target === "requirement_analysis"
74
+ ? `\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
+ : "";
76
+ return {
77
+ prompt: prompt + dbApiDeliberation + systemFormDeliberation,
78
+ template: "研讨记录.md",
79
+ scope: {
80
+ allowed_paths: [deliberationRecordDir(this.contract.name)],
81
+ read_only_paths: ["src/", "config/"],
82
+ },
83
+ };
84
+ }
58
85
  // ── 私有方法(域差异:scope 计算) ──
59
86
  /** 允许写入路径 */
60
87
  buildAllowedPaths(artifact) {
61
- // 设计域产物都在 docs/
88
+ // 设计域产物都在 docs/ 下;附件(companion_files)目录也纳入 scope(bundle 完整产出,通用,不硬编码)
62
89
  const dir = artifact.path_pattern.includes("/") ? artifact.path_pattern.split("/").slice(0, -1).join("/") : "docs";
63
- return [dir || "docs"];
90
+ const paths = new Set([dir || "docs"]);
91
+ for (const cf of artifact.companion_files ?? []) {
92
+ const cfDir = cf.includes("/") ? cf.split("/").slice(0, -1).join("/") : cf;
93
+ paths.add(cfDir || "docs");
94
+ }
95
+ return [...paths];
64
96
  }
65
97
  /** 只读路径 */
66
98
  buildReadOnlyPaths() {
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/domain/design/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,YAAY;AACZ,MAAM,OAAO,YAAY;IAOJ;IACA;IAPnB,wFAAwF;IACxF,IAAI,QAAQ;QACV,OAAO,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/D,CAAC;IAED,YACmB,QAAkB,EAClB,WAAmB;QADnB,aAAQ,GAAR,QAAQ,CAAU;QAClB,gBAAW,GAAX,WAAW,CAAQ;IACnC,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,IAAiB;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,GAAG,CACP,IAAiB,EACjB,MAAc,EACd,QAAgC,EAChC,QAAiB;QAEjB,aAAa;QACb,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,SAAS,MAAM,WAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpG,CAAC;QAED,oCAAoC;QACpC,MAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtG,MAAM,eAAe,GAAG,EAAE,CAAC,CAAC,wCAAwC;QAEpE,cAAc;QACd,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEhD,uCAAuC;QACvC,MAAM,MAAM,GAAG,mBAAmB,CAChC,IAAI,CAAC,MAAM,EACX,QAAQ,EACR;YACE,eAAe;YACf,eAAe,EAAE,cAAc,CAAC,QAAQ,CAAC;YACzC,eAAe;SAChB,EACD,qBAAqB,QAAQ,CAAC,IAAI,sBAAsB,EACxD,QAAQ,CACT,CAAC;QAEF,OAAO;YACL,MAAM;YACN,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,KAAK,EAAE;gBACL,aAAa,EAAE,YAAY;gBAC3B,eAAe,EAAE,aAAa;aAC/B;SACF,CAAC;IACJ,CAAC;IAED,2BAA2B;IAE3B,aAAa;IACL,iBAAiB,CAAC,QAAkC;QAC1D,kBAAkB;QAClB,MAAM,GAAG,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACnH,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC;IACzB,CAAC;IAED,WAAW;IACH,kBAAkB;QACxB,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC7B,CAAC;CACF"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/domain/design/engine.ts"],"names":[],"mappings":"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"}
@@ -48,6 +48,28 @@ export declare function buildArtifactPrompt(taskIntent: string, artifact: {
48
48
  upstreamSection: string;
49
49
  guidanceSection: string;
50
50
  }, requirements: string, feedback?: string): string;
51
+ /** 研讨记录所在目录(相对项目根):docs/研讨记录/{域中文}/ */
52
+ export declare function deliberationRecordDir(domain: string): string;
53
+ /**
54
+ * 计算研讨记录文件路径(全中文语义):docs/研讨记录/{域中文}/{产物中文}-研讨记录.md
55
+ * 产物中文名从 path_pattern 文件名派生(去 .md + 去编号前缀如 "01-"),与产物本身中文命名一致。
56
+ */
57
+ export declare function deliberationRecordPath(domain: string, artifact: {
58
+ path_pattern: string;
59
+ }): string;
60
+ /**
61
+ * 组装产出前研讨 prompt(对话框交互式)。
62
+ * 核心纪律:这是**对话**——AI 必须在对话框与用户交互式头脑风暴,不单方面写记录。
63
+ * 收敛后才把研讨结论总结留痕(供 cross-artifact 对抗审查复核"研讨充分性")。
64
+ */
65
+ export declare function buildDeliberationPrompt(taskIntent: string, artifact: {
66
+ kind: string;
67
+ path_pattern: string;
68
+ gate: string;
69
+ }, sections: {
70
+ templateContent: string;
71
+ upstreamSection: string;
72
+ }, deliberationPath: string): string;
51
73
  /**
52
74
  * 扫描用户 artifact 模板(.soloforge/knowledge/ 项目级 + ~/.soloforge/patterns/ 全局级)。
53
75
  * 用户 artifact md frontmatter 用 artifact_contract 块声明 domain/artifact_kind/path_pattern/gate/required:
@@ -63,4 +85,19 @@ export declare function buildArtifactPrompt(taskIntent: string, artifact: {
63
85
  export declare function getUserArtifacts(projectRoot: string, domain: string): ArtifactDeclaration[];
64
86
  /** 合并内置 contract + 用户 artifact produces(4 engine contract getter 用)。无用户 artifact 时返回原 contract。 */
65
87
  export declare function getExtendedContract(base: DomainContract, projectRoot: string): DomainContract;
88
+ /**
89
+ * 派生 build 域 scope:合并声明的工程目录(config.projects)+ 探测的源码根 + config/。
90
+ * 多工程结构(根/{端}/src/)下放行所有工程的 src/;单工程(根 src/)向后兼容。
91
+ */
92
+ export declare function resolveBuildScope(projectRoot: string, config: {
93
+ projects?: Array<{
94
+ dir: string;
95
+ }>;
96
+ } | undefined): string[];
97
+ /**
98
+ * 多端 code 产物的 git hash(verify/doctor 防漂移用)。
99
+ * code 产物分布在 根/{端}/src/:无 src/ → 空(doctor orphan 标志);有 src/ → 项目 HEAD hash(项目级,反映所有代码变更)。
100
+ * 用 HEAD 而非 git hash-object(src/):后者对目录返回空(git hash-object 只支持文件),原 verify 记空 hash 是隐藏 bug。
101
+ */
102
+ export declare function aggregateMultiSrcHash(projectRoot: string): Promise<string>;
66
103
  //# sourceMappingURL=engine_helpers.d.ts.map
@@ -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;AAO5E;;;;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;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"}
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"}
@@ -17,6 +17,8 @@ import { resolve, join, dirname } from "node:path";
17
17
  import { homedir } from "node:os";
18
18
  import { fileURLToPath } from "node:url";
19
19
  import matter from "gray-matter";
20
+ import { discoverSourceRoots } from "../gate/scope_resolver.js";
21
+ import { getHeadHash } from "../core/git_utils.js";
20
22
  /** SoloForge 包根(dist/domain/ → 包根)。定位内置 templates,与 gate_registry_bridge 一致。
21
23
  * 修定位 bug:原 loadGuidance/loadArtifactTemplate 用 resolve(projectRoot,"templates"),
22
24
  * 生产环境 projectRoot=客户项目根,找不到内置 templates(潜伏不一致,gate_registry_bridge 注释自述)。 */
@@ -177,6 +179,71 @@ export function buildArtifactPrompt(taskIntent, artifact, sections, requirements
177
179
  parts.push(requirements);
178
180
  return parts.join("\n");
179
181
  }
182
+ /** 域名 → 中文标签(研讨记录路径用,遵循项目产物中文命名语义) */
183
+ const DOMAIN_ZH = { design: "设计", build: "构建", verify: "验证", operate: "运行" };
184
+ /** 研讨记录所在目录(相对项目根):docs/研讨记录/{域中文}/ */
185
+ export function deliberationRecordDir(domain) {
186
+ return `docs/研讨记录/${DOMAIN_ZH[domain] || domain}/`;
187
+ }
188
+ /**
189
+ * 计算研讨记录文件路径(全中文语义):docs/研讨记录/{域中文}/{产物中文}-研讨记录.md
190
+ * 产物中文名从 path_pattern 文件名派生(去 .md + 去编号前缀如 "01-"),与产物本身中文命名一致。
191
+ */
192
+ export function deliberationRecordPath(domain, artifact) {
193
+ const base = artifact.path_pattern.split("/").pop() || "产物";
194
+ const product = base.replace(/\.md$/, "").replace(/^\d+-/, "");
195
+ return `${deliberationRecordDir(domain)}${product}-研讨记录.md`;
196
+ }
197
+ /**
198
+ * 组装产出前研讨 prompt(对话框交互式)。
199
+ * 核心纪律:这是**对话**——AI 必须在对话框与用户交互式头脑风暴,不单方面写记录。
200
+ * 收敛后才把研讨结论总结留痕(供 cross-artifact 对抗审查复核"研讨充分性")。
201
+ */
202
+ export function buildDeliberationPrompt(taskIntent, artifact, sections, deliberationPath) {
203
+ const parts = [];
204
+ parts.push(`# 任务:产出「${artifact.kind}」前的条件研讨(对话框交互式)`);
205
+ parts.push(`\n用户意图:${taskIntent}`);
206
+ parts.push(`研讨记录留痕路径(对话收敛后总结写入):${deliberationPath}`);
207
+ if (sections.upstreamSection) {
208
+ parts.push(`\n## 上游产物参考`);
209
+ parts.push(sections.upstreamSection);
210
+ }
211
+ parts.push(`\n## 核心纪律:这是对话,不是单方面产出`);
212
+ parts.push(`你是**研讨引导者**,必须在对话框与用户**交互式头脑风暴**——不要自己下结论、不要先写文件。每个有疑问的点都要与用户来回讨论后再收敛。`);
213
+ parts.push(`
214
+ ## 研讨流程(与用户在对话框交互)
215
+
216
+ ### 第 1 步:识别不确定点(对话框告诉用户)
217
+ 列出本次产出的关键不确定点(技术选型 / 边界假设 / 信息缺口 / 接口契约 / 异常处理 / 性能与安全取舍),在对话框告诉用户,问:哪些需要深入研讨?哪些你已明确?
218
+
219
+ ### 第 2 步:逐点交互研讨(有疑问的点,对话框来回)
220
+ 对每个有疑问的点:
221
+ 1. **发散**:在对话框列多个可能方案,问用户倾向与理由(不替用户决定)
222
+ 2. **第一性原理收敛**:回到根本约束(用户根本需求 / 物理与成本 / 已有架构 / 可证伪事实),与用户一起推导,淘汰经不起追问的
223
+ 3. **对话收敛**:与用户讨论达成共识,再进下一点
224
+
225
+ ### 第 3 步:无疑问的点(一行向用户确认,快速跳过)
226
+ \`[点] 我倾向按 X 处理,依据 Y,你认可吗?\` —— 用户认可即跳过。
227
+
228
+ ### 第 4 步:收敛确认(对话框汇总与用户确认)
229
+ 所有点讨论完,在对话框汇总研讨结论,与用户确认。
230
+
231
+ ### 第 5 步:留痕 + 产出
232
+ 确认后:
233
+ 1. 把研讨结论总结写入 \`${deliberationPath}\`(按下方模板结构,是对话的总结留痕,供 cross-artifact 对抗审查复核"研讨充分性")
234
+ 2. 调 sf_work action="act" target="${artifact.kind}" 承接研讨结论产出实际产物
235
+ `);
236
+ if (sections.templateContent) {
237
+ parts.push(`\n## 研讨记录留痕模板(对话收敛后按此结构总结写入)`);
238
+ parts.push(sections.templateContent);
239
+ }
240
+ parts.push(`\n## 要求`);
241
+ parts.push(`- 这是**对话**:每个有疑问的点必须与用户来回讨论后再收敛,禁止 AI 自问自答直接写记录
242
+ - 防偷懒:复杂决策不得直接跳过,必须在对话框与用户研讨
243
+ - 留痕是对话的**总结**,不替代对话;对话未收敛不得先写文件
244
+ - 所有内容使用中文`);
245
+ return parts.join("\n");
246
+ }
180
247
  /**
181
248
  * 扫描用户 artifact 模板(.soloforge/knowledge/ 项目级 + ~/.soloforge/patterns/ 全局级)。
182
249
  * 用户 artifact md frontmatter 用 artifact_contract 块声明 domain/artifact_kind/path_pattern/gate/required:
@@ -233,4 +300,23 @@ export function getExtendedContract(base, projectRoot) {
233
300
  return base;
234
301
  return { ...base, produces: [...base.produces, ...userArtifacts] };
235
302
  }
303
+ /**
304
+ * 派生 build 域 scope:合并声明的工程目录(config.projects)+ 探测的源码根 + config/。
305
+ * 多工程结构(根/{端}/src/)下放行所有工程的 src/;单工程(根 src/)向后兼容。
306
+ */
307
+ export function resolveBuildScope(projectRoot, config) {
308
+ const declared = (config?.projects ?? []).map((p) => `${p.dir.replace(/\/+$/, "")}/src/`);
309
+ const discovered = discoverSourceRoots(projectRoot).map((r) => r.path);
310
+ return Array.from(new Set([...declared, ...discovered, "src/", "config/"]));
311
+ }
312
+ /**
313
+ * 多端 code 产物的 git hash(verify/doctor 防漂移用)。
314
+ * code 产物分布在 根/{端}/src/:无 src/ → 空(doctor orphan 标志);有 src/ → 项目 HEAD hash(项目级,反映所有代码变更)。
315
+ * 用 HEAD 而非 git hash-object(src/):后者对目录返回空(git hash-object 只支持文件),原 verify 记空 hash 是隐藏 bug。
316
+ */
317
+ export async function aggregateMultiSrcHash(projectRoot) {
318
+ if (discoverSourceRoots(projectRoot).length === 0)
319
+ return "";
320
+ return getHeadHash(projectRoot);
321
+ }
236
322
  //# sourceMappingURL=engine_helpers.js.map
@@ -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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"}
@@ -24,5 +24,6 @@ export declare class OperateEngine implements IDomainEngine {
24
24
  constructor(observer: Observer, projectRoot: string);
25
25
  observe(task: TaskContext): Promise<DerivedState>;
26
26
  act(task: TaskContext, target: string, upstream: Record<string, string>, feedback?: string): Promise<ActResult>;
27
+ deliberate(task: TaskContext, target: string, upstream: Record<string, string>): Promise<ActResult>;
27
28
  }
28
29
  //# sourceMappingURL=engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/domain/operate/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;AASvD,YAAY;AACZ,qBAAa,aAAc,YAAW,aAAa;IAO/C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAP9B,wCAAwC;IACxC,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;CA8BtB"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/domain/operate/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,aAAc,YAAW,aAAa;IAO/C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAP9B,wCAAwC;IACxC,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;IA+Bf,UAAU,CACd,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,SAAS,CAAC;CAsBtB"}
@@ -12,7 +12,7 @@
12
12
  * 持久化:无(act 只组装 prompt)
13
13
  */
14
14
  import { operateContract } from "./contract.js";
15
- import { loadArtifactTemplate, formatUpstream, buildArtifactPrompt, getExtendedContract, } from "../engine_helpers.js";
15
+ import { loadArtifactTemplate, formatUpstream, buildArtifactPrompt, buildDeliberationPrompt, deliberationRecordPath, deliberationRecordDir, getExtendedContract, } from "../engine_helpers.js";
16
16
  /** 运行域引擎 */
17
17
  export class OperateEngine {
18
18
  observer;
@@ -39,7 +39,7 @@ export class OperateEngine {
39
39
  templateContent,
40
40
  upstreamSection: formatUpstream(upstream),
41
41
  guidanceSection,
42
- }, `基于已审查通过的代码准备部署。确保通过「${artifact.gate}」门禁检查。\n所有注释和日志使用中文。`, feedback);
42
+ }, `基于已审查通过的代码准备部署。确保通过「${artifact.gate}」门禁检查。\n所有注释和日志使用中文。\n## 交付前实跑验证(必须,软注入纪律)\n交付前必须实跑验证并输出地址给人工验收:① \`docker compose build\` 构建最新镜像到本地 docker desktop;② \`docker compose up\` 启动服务;③ 浏览器验证前端交互 + 后端逻辑(核心接口,playwright e2e 验交互链路与接口响应,SLICE-E2E 兜底——不验 UI 视觉);④ 前端 UI 视觉验收——客户端 AI 视觉审查截图(布局/颜色/响应式/与设计稿一致)+ 主观项人工确认,结论留痕发布说明「UI 视觉验收」行(见「UI视觉验收纪律」guidance,视觉正确性是 L2/L3 域,不在此用确定性 e2e 偷验);⑤ **输出访问地址(http://localhost:各服务PORT,逐服务列清楚)给人工查看**。slice-gate(SLICE-BUILD/UP/HTTP/E2E)会兜底验证构建/部署/HTTP/E2E,但「输出地址给人工」是交付硬要求——不输出地址等于没交付,人工无法验收。`, feedback);
43
43
  return {
44
44
  prompt,
45
45
  template: artifact.template,
@@ -49,5 +49,22 @@ export class OperateEngine {
49
49
  },
50
50
  };
51
51
  }
52
+ async deliberate(task, target, upstream) {
53
+ const artifact = this.contract.produces.find((a) => a.kind === target);
54
+ if (!artifact) {
55
+ throw new Error(`运行域无 "${target}" 产物。可用:${this.contract.produces.map((a) => a.kind).join(", ")}`);
56
+ }
57
+ const templateContent = loadArtifactTemplate(this.projectRoot, this.contract.name, "研讨记录.md");
58
+ const recordPath = deliberationRecordPath(this.contract.name, artifact);
59
+ const prompt = buildDeliberationPrompt(task.intent, artifact, { templateContent, upstreamSection: formatUpstream(upstream) }, recordPath);
60
+ return {
61
+ prompt,
62
+ template: "研讨记录.md",
63
+ scope: {
64
+ allowed_paths: [deliberationRecordDir(this.contract.name)],
65
+ read_only_paths: ["src/", "config/"],
66
+ },
67
+ };
68
+ }
52
69
  }
53
70
  //# sourceMappingURL=engine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/domain/operate/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,YAAY;AACZ,MAAM,OAAO,aAAa;IAOL;IACA;IAPnB,wCAAwC;IACxC,IAAI,QAAQ;QACV,OAAO,mBAAmB,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAChE,CAAC;IAED,YACmB,QAAkB,EAClB,WAAmB;QADnB,aAAQ,GAAR,QAAQ,CAAU;QAClB,gBAAW,GAAX,WAAW,CAAQ;IACnC,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,IAAiB;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,GAAG,CACP,IAAiB,EACjB,MAAc,EACd,QAAgC,EAChC,QAAiB;QAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,SAAS,MAAM,WAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpG,CAAC;QAED,MAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtG,MAAM,eAAe,GAAG,EAAE,CAAC,CAAC,wCAAwC;QAEpE,MAAM,MAAM,GAAG,mBAAmB,CAChC,IAAI,CAAC,MAAM,EACX,QAAQ,EACR;YACE,eAAe;YACf,eAAe,EAAE,cAAc,CAAC,QAAQ,CAAC;YACzC,eAAe;SAChB,EACD,uBAAuB,QAAQ,CAAC,IAAI,sBAAsB,EAC1D,QAAQ,CACT,CAAC;QAEF,OAAO;YACL,MAAM;YACN,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,KAAK,EAAE;gBACL,aAAa,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;gBACnC,eAAe,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;aACrC;SACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/domain/operate/engine.ts"],"names":[],"mappings":"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"}