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
@@ -6,10 +6,10 @@
6
6
  * - 不负责:项目规划、配置推断(由 MCP 工具 sf_task/sf_knowledge 承担)
7
7
  *
8
8
  * 被谁调用:CLI init 命令(runInit)
9
- * 调用谁:claude_md / hooks / trae_config / trae_rules(适配器层生成函数)
9
+ * 调用谁:claude_md / hooks(适配器层生成函数)
10
10
  *
11
11
  * 数据流:项目路径 + 配置 → 生成内容 → 写盘到项目根
12
- * 持久化:写入项目根的 .mcp.json / CLAUDE.md / .claude/settings.json / .trae/*
12
+ * 持久化:写入项目根的 .mcp.json / CLAUDE.md / .claude/settings.json
13
13
  *
14
14
  * 设计决策:每个 writer = 生成内容 + 写盘,纯函数式便于单测(参照 tests/adapters/soloforge_init.test.ts 范式)。
15
15
  */
@@ -37,10 +37,6 @@ export declare function writeMcpJson(projectPath: string): string;
37
37
  export declare function writeClaudeMd(projectPath: string, config: ProjectConfig): string;
38
38
  /** 写入 .claude/settings.json(非阻断 hooks:PostToolUse / UserPromptSubmit,仅信息收集) */
39
39
  export declare function writeClaudeSettings(projectPath: string): string;
40
- /** 写入 Trae 的 .trae/mcp.json(含 soloforge + playwright,由 generateTraeMcpConfig 生成) */
41
- export declare function writeTraeMcpJson(projectPath: string): string;
42
- /** 写入 .trae/rules/project_rules.md(Trae AI 工作流指令) */
43
- export declare function writeTraeRules(projectPath: string, config: ProjectConfig): string;
44
40
  /** 生成 redocly.yaml(锁定 redocly lint 规则,判定标准由 SoloForge 掌控,防上游默认规则 drift)。
45
41
  * 设计:external_command 类 check 的外部工具规则也属硬下限,必须自带 config 锁定,不能外包上游默认。 */
46
42
  export declare function generateRedoclyConfig(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"adapter_writers.d.ts","sourceRoot":"","sources":["../../src/cli/adapter_writers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,uEAAuE;AACvE,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE;QACV,SAAS,EAAE;YACT,OAAO,EAAE,MAAM,CAAC;YAChB,IAAI,EAAE,MAAM,EAAE,CAAC;YACf,GAAG,EAAE;gBAAE,iBAAiB,EAAE,MAAM,CAAA;aAAE,CAAC;SACpC,CAAC;KACH,CAAC;CACH;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB,CAa9E;AAUD,2CAA2C;AAC3C,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,CAKhF;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAK/D;AAED,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAK5D;AAED,qDAAqD;AACrD,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,CAKjF;AAED;wEACwE;AACxE,wBAAgB,qBAAqB,IAAI,MAAM,CAgB9C;AAED,6FAA6F;AAC7F,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAI9D"}
1
+ {"version":3,"file":"adapter_writers.d.ts","sourceRoot":"","sources":["../../src/cli/adapter_writers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,uEAAuE;AACvE,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE;QACV,SAAS,EAAE;YACT,OAAO,EAAE,MAAM,CAAC;YAChB,IAAI,EAAE,MAAM,EAAE,CAAC;YACf,GAAG,EAAE;gBAAE,iBAAiB,EAAE,MAAM,CAAA;aAAE,CAAC;SACpC,CAAC;KACH,CAAC;CACH;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB,CAa9E;AAUD,2CAA2C;AAC3C,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,CAKhF;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAK/D;AAED;wEACwE;AACxE,wBAAgB,qBAAqB,IAAI,MAAM,CAgB9C;AAED,6FAA6F;AAC7F,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAI9D"}
@@ -6,10 +6,10 @@
6
6
  * - 不负责:项目规划、配置推断(由 MCP 工具 sf_task/sf_knowledge 承担)
7
7
  *
8
8
  * 被谁调用:CLI init 命令(runInit)
9
- * 调用谁:claude_md / hooks / trae_config / trae_rules(适配器层生成函数)
9
+ * 调用谁:claude_md / hooks(适配器层生成函数)
10
10
  *
11
11
  * 数据流:项目路径 + 配置 → 生成内容 → 写盘到项目根
12
- * 持久化:写入项目根的 .mcp.json / CLAUDE.md / .claude/settings.json / .trae/*
12
+ * 持久化:写入项目根的 .mcp.json / CLAUDE.md / .claude/settings.json
13
13
  *
14
14
  * 设计决策:每个 writer = 生成内容 + 写盘,纯函数式便于单测(参照 tests/adapters/soloforge_init.test.ts 范式)。
15
15
  */
@@ -17,8 +17,6 @@ import fs from "node:fs";
17
17
  import path from "node:path";
18
18
  import { generateClaudeMd } from "../context/adapters/claude_code/claude_md.js";
19
19
  import { generateHooksConfig } from "../context/adapters/claude_code/hooks.js";
20
- import { generateTraeMcpConfig } from "../context/adapters/trae/trae_config.js";
21
- import { generateTraeRules } from "../context/adapters/trae/trae_rules.js";
22
20
  /**
23
21
  * 生成 Claude Code 的 .mcp.json 配置对象。
24
22
  * @param projectPath 项目路径(注入 SOLOFORGE_PROJECT env,转绝对路径)
@@ -65,20 +63,6 @@ export function writeClaudeSettings(projectPath) {
65
63
  fs.writeFileSync(target, JSON.stringify(generateHooksConfig(), null, 2) + "\n", "utf-8");
66
64
  return target;
67
65
  }
68
- /** 写入 Trae 的 .trae/mcp.json(含 soloforge + playwright,由 generateTraeMcpConfig 生成) */
69
- export function writeTraeMcpJson(projectPath) {
70
- const target = path.join(projectPath, ".trae", "mcp.json");
71
- ensureDir(target);
72
- fs.writeFileSync(target, JSON.stringify(generateTraeMcpConfig(projectPath), null, 2) + "\n", "utf-8");
73
- return target;
74
- }
75
- /** 写入 .trae/rules/project_rules.md(Trae AI 工作流指令) */
76
- export function writeTraeRules(projectPath, config) {
77
- const target = path.join(projectPath, ".trae", "rules", "project_rules.md");
78
- ensureDir(target);
79
- fs.writeFileSync(target, generateTraeRules(config), "utf-8");
80
- return target;
81
- }
82
66
  /** 生成 redocly.yaml(锁定 redocly lint 规则,判定标准由 SoloForge 掌控,防上游默认规则 drift)。
83
67
  * 设计:external_command 类 check 的外部工具规则也属硬下限,必须自带 config 锁定,不能外包上游默认。 */
84
68
  export function generateRedoclyConfig() {
@@ -1 +1 @@
1
- {"version":3,"file":"adapter_writers.js","sourceRoot":"","sources":["../../src/cli/adapter_writers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter_writers.js","sourceRoot":"","sources":["../../src/cli/adapter_writers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAc/E;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAmB;IACvD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/C,OAAO;QACL,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,CAAC,KAAK,CAAC;gBACb,GAAG,EAAE;oBACH,iBAAiB,EAAE,YAAY;iBAChC;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAED,yBAAyB;AACzB,SAAS,SAAS,CAAC,QAAgB;IACjC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,YAAY,CAAC,WAAmB;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACnD,SAAS,CAAC,MAAM,CAAC,CAAC;IAClB,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;IACtG,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,aAAa,CAAC,WAAmB,EAAE,MAAqB;IACtE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACnD,SAAS,CAAC,MAAM,CAAC,CAAC;IAClB,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IAClE,SAAS,CAAC,MAAM,CAAC,CAAC;IAClB,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;IACzF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;wEACwE;AACxE,MAAM,UAAU,qBAAqB;IACnC,OAAO;;;;;;;;;;;;;;CAcR,CAAC;AACF,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IACpD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACtD,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,qBAAqB,EAAE,EAAE,OAAO,CAAC,CAAC;IAC3D,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -8,8 +8,8 @@
8
8
  * 被谁调用:src/index.ts argv 分发(soloforge init)
9
9
  * 调用谁:resolveProjectConfig / classifyConfigContext / copy* / adapter_writers
10
10
  *
11
- * 数据流:argv → 配置 + 边界 → 写入 5 个接入文件 + 同步模板
12
- * 持久化:写项目根 .mcp.json / CLAUDE.md / .claude/settings.json / .trae/*
11
+ * 数据流:argv → 配置 + 边界 → 写入 4 个接入文件 + 同步模板
12
+ * 持久化:写项目根 .mcp.json / CLAUDE.md / .claude/settings.json
13
13
  *
14
14
  * 第一性定位:init 是 MCP 引导悖论的解药——MCP 连不上之前,建立连接 + 注入工作流指令。
15
15
  * 大道至简:只接入,不推断项目规划(规划交给 AI 连上 MCP 后做)。
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAkEH;;;GAGG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyF3D"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAwDH;;;GAGG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4E3D"}
package/dist/cli/init.js CHANGED
@@ -8,8 +8,8 @@
8
8
  * 被谁调用:src/index.ts argv 分发(soloforge init)
9
9
  * 调用谁:resolveProjectConfig / classifyConfigContext / copy* / adapter_writers
10
10
  *
11
- * 数据流:argv → 配置 + 边界 → 写入 5 个接入文件 + 同步模板
12
- * 持久化:写项目根 .mcp.json / CLAUDE.md / .claude/settings.json / .trae/*
11
+ * 数据流:argv → 配置 + 边界 → 写入 4 个接入文件 + 同步模板
12
+ * 持久化:写项目根 .mcp.json / CLAUDE.md / .claude/settings.json
13
13
  *
14
14
  * 第一性定位:init 是 MCP 引导悖论的解药——MCP 连不上之前,建立连接 + 注入工作流指令。
15
15
  * 大道至简:只接入,不推断项目规划(规划交给 AI 连上 MCP 后做)。
@@ -18,7 +18,7 @@ import path from "node:path";
18
18
  import { resolveProjectConfig, getGlobalPatternsDir, getBuiltinKnowledgeDir } from "../context/knowledge/loader.js";
19
19
  import { classifyConfigContext, isWriteAllowed } from "../context/config/config_write_boundary.js";
20
20
  import { copyKnowledgeToProject, copyPipelineTemplatesToProject, copyPatternsToGlobal, ensureKnowledgeSkeleton } from "../context/templates/template_init_sync.js";
21
- import { writeMcpJson, writeClaudeMd, writeClaudeSettings, writeTraeMcpJson, writeTraeRules, writeRedoclyConfig, generateMcpJsonConfig, } from "./adapter_writers.js";
21
+ import { writeMcpJson, writeClaudeMd, writeClaudeSettings, writeRedoclyConfig, generateMcpJsonConfig, } from "./adapter_writers.js";
22
22
  import { ENV } from "../shared/env.js";
23
23
  /** 手写 argv 解析(不引入 commander/yargs,大道至简) */
24
24
  function parseInitArgs(argv) {
@@ -35,30 +35,22 @@ function parseInitArgs(argv) {
35
35
  }
36
36
  else if (a === "--adapter") {
37
37
  const v = argv[i + 1];
38
- if (v === "claude-code" || v === "trae" || v === "all") {
38
+ if (v === "claude-code" || v === "all") {
39
39
  adapter = v;
40
40
  i++;
41
41
  }
42
42
  }
43
43
  else if (a.startsWith("--adapter=")) {
44
44
  const v = a.slice("--adapter=".length);
45
- if (v === "claude-code" || v === "trae" || v === "all")
45
+ if (v === "claude-code" || v === "all")
46
46
  adapter = v;
47
47
  }
48
48
  }
49
49
  return { adapter, dryRun, force };
50
50
  }
51
- /** adapter 算出将写入的 managed 文件相对路径清单 */
52
- function computeWrites(adapter) {
53
- const writes = [];
54
- if (adapter === "claude-code" || adapter === "all") {
55
- writes.push(".mcp.json", "CLAUDE.md", ".claude/settings.json");
56
- }
57
- if (adapter === "trae" || adapter === "all") {
58
- writes.push(".trae/mcp.json", ".trae/rules/project_rules.md");
59
- }
60
- writes.push("redocly.yaml"); // OPENAPI-LINT 工具配置(design-gate/verify-gate),与 adapter 无关,总是写
61
- return writes;
51
+ /** 将写入的 managed 文件相对路径清单(只接 Claude Code:3 接入文件 + redocly.yaml) */
52
+ function computeWrites() {
53
+ return [".mcp.json", "CLAUDE.md", ".claude/settings.json", "redocly.yaml"];
62
54
  }
63
55
  /**
64
56
  * 运行 init 命令。
@@ -86,16 +78,14 @@ export async function runInit(argv) {
86
78
  }
87
79
  // 2. 写入边界分类(confirmed = --force,即 existing_project 显式确认覆盖 managed 文件)
88
80
  const ctx = classifyConfigContext(absoluteProject, { confirmed: force });
89
- const writes = computeWrites(adapter);
81
+ const writes = computeWrites();
90
82
  const absoluteWrites = writes.map((w) => path.join(absoluteProject, w));
91
83
  // 3. dry-run:仅预览将写入的文件 + .mcp.json 连接配置,不写盘
92
84
  if (dryRun) {
93
85
  console.log("【将写入/覆盖的文件】");
94
86
  writes.forEach((w) => console.log(` - ${w}`));
95
- if (adapter === "claude-code" || adapter === "all") {
96
- console.log("\n【.mcp.json 连接配置预览】");
97
- console.log(JSON.stringify(generateMcpJsonConfig(absoluteProject), null, 2));
98
- }
87
+ console.log("\n【.mcp.json 连接配置预览】");
88
+ console.log(JSON.stringify(generateMcpJsonConfig(absoluteProject), null, 2));
99
89
  console.log("\n(预览模式,未写盘。去掉 --dry-run 执行写入。)");
100
90
  return;
101
91
  }
@@ -125,27 +115,16 @@ export async function runInit(argv) {
125
115
  console.log(` ⚠️ 模板同步出错(不影响接入):${err instanceof Error ? err.message : String(err)}`);
126
116
  }
127
117
  console.log();
128
- // 6. 适配器配置写盘(按 --adapter)
118
+ // 6. 适配器配置写盘(只接 Claude Code;all 同义)
129
119
  console.log("【写入适配器配置】");
130
- if (adapter === "claude-code" || adapter === "all") {
131
- console.log(` ${writeMcpJson(absoluteProject)}`);
132
- console.log(` ${writeClaudeMd(absoluteProject, config)}`);
133
- console.log(` ${writeClaudeSettings(absoluteProject)}`);
134
- }
135
- if (adapter === "trae" || adapter === "all") {
136
- console.log(` ${writeTraeMcpJson(absoluteProject)}`);
137
- console.log(` ${writeTraeRules(absoluteProject, config)}`);
138
- }
120
+ console.log(` ${writeMcpJson(absoluteProject)}`);
121
+ console.log(` ${writeClaudeMd(absoluteProject, config)}`);
122
+ console.log(` ${writeClaudeSettings(absoluteProject)}`);
139
123
  console.log(` ${writeRedoclyConfig(absoluteProject)} (OPENAPI-LINT 锁定规则配置)`);
140
124
  console.log();
141
125
  // 7. 接入总结 + 下一步指引
142
126
  console.log("✅ 接入完成。下一步:");
143
- if (adapter === "claude-code" || adapter === "all") {
144
- console.log(" • 在 Claude Code 打开本项目,MCP 自动连接 soloforge");
145
- }
146
- if (adapter === "trae" || adapter === "all") {
147
- console.log(" • 在 Trae IDE 打开本项目,MCP 自动连接 soloforge");
148
- }
127
+ console.log(" • Claude Code 打开本项目,MCP 自动连接 soloforge");
149
128
  console.log(" • 连上后让 AI 调用 sf_task 开始任务,或运行 soloforge doctor 排查问题");
150
129
  }
151
130
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
@@ -29,12 +29,6 @@ export interface AdapterPromptFinding {
29
29
  message_zh: string;
30
30
  section?: string;
31
31
  }
32
- /** 同步选项 */
33
- export interface AdapterSyncOptions {
34
- dry_run: boolean;
35
- apply: boolean;
36
- confirm?: boolean;
37
- }
38
32
  /** 所有必须包含的章节 */
39
33
  export declare const REQUIRED_ADAPTER_SECTIONS: readonly ["when_to_use_soloforge", "when_not_to_use_soloforge", "tool_invocation_policy", "strict_controlled_tools", "language_policy", "status_feedback_policy", "dangerous_action_policy", "trace_policy", "fallback_policy"];
40
34
  /** 禁止出现的声明 */
@@ -57,12 +51,4 @@ export declare function validateAdapterPromptManifest(manifest: AdapterPromptMan
57
51
  consistent: boolean;
58
52
  findings: string[];
59
53
  };
60
- /**
61
- * 同步适配器 Prompt 集合。
62
- *
63
- * - dry_run: 仅验证,不写入
64
- * - apply: 仅当合规时才执行同步(无禁止声明且所有必须章节齐全)
65
- * - 永不覆盖用户修改过的 Prompt
66
- */
67
- export declare function syncAdapterPrompts(contracts: AdapterPromptContract[], options: AdapterSyncOptions): AdapterPromptValidation[];
68
54
  //# sourceMappingURL=adapter_prompt_contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter_prompt_contract.d.ts","sourceRoot":"","sources":["../../src/context/adapter_prompt_contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,6CAA6C,CAAC;AAIrD,sBAAsB;AACtB,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,uBAAuB,CAAC;IAC3C,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,yBAAyB,EAAE,MAAM,EAAE,CAAC;IACpC,sBAAsB,EAAE,OAAO,CAAC;IAChC,QAAQ,EAAE,oBAAoB,EAAE,CAAC;CAClC;AAED,oBAAoB;AACpB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,WAAW;AACX,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAID,gBAAgB;AAChB,eAAO,MAAM,yBAAyB,iOAU5B,CAAC;AAEX,cAAc;AACd,eAAO,MAAM,wBAAwB,oNAU3B,CAAC;AAIX;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,qBAAqB,GAC9B,uBAAuB,CA+DzB;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,qBAAqB,EAC/B,QAAQ,EAAE,qBAAqB,GAC9B;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAqB7C;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,qBAAqB,EAAE,EAClC,OAAO,EAAE,kBAAkB,GAC1B,uBAAuB,EAAE,CA2C3B"}
1
+ {"version":3,"file":"adapter_prompt_contract.d.ts","sourceRoot":"","sources":["../../src/context/adapter_prompt_contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,6CAA6C,CAAC;AAIrD,sBAAsB;AACtB,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,uBAAuB,CAAC;IAC3C,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,yBAAyB,EAAE,MAAM,EAAE,CAAC;IACpC,sBAAsB,EAAE,OAAO,CAAC;IAChC,QAAQ,EAAE,oBAAoB,EAAE,CAAC;CAClC;AAED,oBAAoB;AACpB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID,gBAAgB;AAChB,eAAO,MAAM,yBAAyB,iOAU5B,CAAC;AAEX,cAAc;AACd,eAAO,MAAM,wBAAwB,oNAU3B,CAAC;AAIX;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,qBAAqB,GAC9B,uBAAuB,CA+DzB;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,qBAAqB,EAC/B,QAAQ,EAAE,qBAAqB,GAC9B;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAqB7C"}
@@ -122,50 +122,4 @@ export function validateAdapterPromptManifest(manifest, contract) {
122
122
  findings,
123
123
  };
124
124
  }
125
- /**
126
- * 同步适配器 Prompt 集合。
127
- *
128
- * - dry_run: 仅验证,不写入
129
- * - apply: 仅当合规时才执行同步(无禁止声明且所有必须章节齐全)
130
- * - 永不覆盖用户修改过的 Prompt
131
- */
132
- export function syncAdapterPrompts(contracts, options) {
133
- return contracts.map((contract) => {
134
- const validation = validateAdapterPrompt(contract);
135
- // apply 模式下,不合规的契约不执行同步
136
- if (options.apply && !validation.compliant) {
137
- validation.findings.push({
138
- severity: "warning",
139
- rule: "sync_skipped_non_compliant",
140
- message_zh: `适配器 "${contract.adapter_id}" 不合规,跳过同步`,
141
- });
142
- }
143
- // dry_run 模式只验证
144
- if (options.dry_run) {
145
- validation.findings.push({
146
- severity: "info",
147
- rule: "dry_run_only",
148
- message_zh: `适配器 "${contract.adapter_id}" 仅执行 dry-run 验证`,
149
- });
150
- }
151
- // 安全约束:永不覆盖用户修改过的 Prompt
152
- // sync_required 标记为 false 表示用户已手动修改,跳过同步
153
- if (options.apply && !contract.sync_required) {
154
- validation.findings.push({
155
- severity: "info",
156
- rule: "user_modified_skip",
157
- message_zh: `适配器 "${contract.adapter_id}" 已被用户修改,跳过自动同步以尊重用户主权`,
158
- });
159
- }
160
- // apply 模式且未确认时,提示需要确认
161
- if (options.apply && validation.compliant && !options.confirm) {
162
- validation.findings.push({
163
- severity: "info",
164
- rule: "confirm_required",
165
- message_zh: `适配器 "${contract.adapter_id}" 合规但未获用户确认,暂不执行写入`,
166
- });
167
- }
168
- return validation;
169
- });
170
- }
171
125
  //# sourceMappingURL=adapter_prompt_contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter_prompt_contract.js","sourceRoot":"","sources":["../../src/context/adapter_prompt_contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter_prompt_contract.js","sourceRoot":"","sources":["../../src/context/adapter_prompt_contract.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,10 @@
2
2
  * Integration Guide — 适配器共享层模块。
3
3
  *
4
4
  * 职责边界:
5
- * - 负责:程序化生成 CLAUDE.md / Trae rules 的"集成指引"section(工具速查 / 标准工作流 / 四领域),从契约注册表派生
6
- * - 不负责:规则体生成(workflow_template.ts)、适配器文件写入(claude_md.ts/trae_rules.ts
5
+ * - 负责:程序化生成 CLAUDE.md 的"集成指引"section(工具速查 / 标准工作流 / 四领域),从契约注册表派生
6
+ * - 不负责:规则体生成(workflow_template.ts)、适配器文件写入(claude_md.ts)
7
7
  *
8
- * 被谁调用:claude_code/claude_md.ts generateClaudeMd、trae/trae_rules.ts writeTraeRules
8
+ * 被谁调用:claude_code/claude_md.ts generateClaudeMd
9
9
  * 调用谁:listToolInvocationContracts(工具契约)、ALL_CONTRACTS(域契约)
10
10
  *
11
11
  * 数据流:契约注册表 → 派生指引文本 → 适配器拼接进 CLAUDE.md/rules
@@ -13,9 +13,9 @@
13
13
  */
14
14
  import type { ProjectConfig } from "../../../types/index.js";
15
15
  /**
16
- * 生成完整的规则文档(CLAUDE.md / Trae rules 通用):
16
+ * 生成完整的规则文档(CLAUDE.md):
17
17
  * 顶层 header + intro + 集成指引(工具/流程/领域) + 强制规则 + 项目信息 + checksum。
18
- * Claude Code 与 Trae 两适配器共用,保证内容一致、单一真相源。
18
+ * Claude Code 适配器使用,单一真相源。
19
19
  * @param config 项目配置(预留:未来按 tech_stack/项目名做定制化注入)
20
20
  */
21
21
  export declare function generateFullRulesDocument(config?: ProjectConfig): string;
@@ -1 +1 @@
1
- {"version":3,"file":"integration_guide.d.ts","sourceRoot":"","sources":["../../../../src/context/adapters/shared/integration_guide.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM,CAexE;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAExE"}
1
+ {"version":3,"file":"integration_guide.d.ts","sourceRoot":"","sources":["../../../../src/context/adapters/shared/integration_guide.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM,CAaxE;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAExE"}
@@ -2,10 +2,10 @@
2
2
  * Integration Guide — 适配器共享层模块。
3
3
  *
4
4
  * 职责边界:
5
- * - 负责:程序化生成 CLAUDE.md / Trae rules 的"集成指引"section(工具速查 / 标准工作流 / 四领域),从契约注册表派生
6
- * - 不负责:规则体生成(workflow_template.ts)、适配器文件写入(claude_md.ts/trae_rules.ts
5
+ * - 负责:程序化生成 CLAUDE.md 的"集成指引"section(工具速查 / 标准工作流 / 四领域),从契约注册表派生
6
+ * - 不负责:规则体生成(workflow_template.ts)、适配器文件写入(claude_md.ts)
7
7
  *
8
- * 被谁调用:claude_code/claude_md.ts generateClaudeMd、trae/trae_rules.ts writeTraeRules
8
+ * 被谁调用:claude_code/claude_md.ts generateClaudeMd
9
9
  * 调用谁:listToolInvocationContracts(工具契约)、ALL_CONTRACTS(域契约)
10
10
  *
11
11
  * 数据流:契约注册表 → 派生指引文本 → 适配器拼接进 CLAUDE.md/rules
@@ -13,11 +13,12 @@
13
13
  */
14
14
  import { listToolInvocationContracts } from "../../../gate/index.js";
15
15
  import { ALL_CONTRACTS } from "../../../domain/index.js";
16
- import { generateRulesBody, TEMPLATE_OUTPUT_CHECKSUM } from "./workflow_template.js";
16
+ import { generateRulesBody } from "./workflow_template.js";
17
+ import { getArtifactDefaults } from "../../../domain/contracts/artifact_contract_registry.js";
17
18
  /**
18
- * 生成完整的规则文档(CLAUDE.md / Trae rules 通用):
19
+ * 生成完整的规则文档(CLAUDE.md):
19
20
  * 顶层 header + intro + 集成指引(工具/流程/领域) + 强制规则 + 项目信息 + checksum。
20
- * Claude Code 与 Trae 两适配器共用,保证内容一致、单一真相源。
21
+ * Claude Code 适配器使用,单一真相源。
21
22
  * @param config 项目配置(预留:未来按 tech_stack/项目名做定制化注入)
22
23
  */
23
24
  export function generateFullRulesDocument(config) {
@@ -32,8 +33,6 @@ ${generateRulesBody()}
32
33
  ## 项目信息
33
34
 
34
35
  项目事实以 intent.yaml 声明 + 自动探测结果及 tool 输出为准,不在模板中硬编码。知识库位于 \`.soloforge/knowledge/\`,可用 \`sf_knowledge(audit)\` 审计健康度。
35
-
36
- <!-- @sf-checksum: ${TEMPLATE_OUTPUT_CHECKSUM} -->
37
36
  `;
38
37
  }
39
38
  /**
@@ -59,7 +58,7 @@ ${rows.join("\n")}`;
59
58
  function generateWorkflowSection() {
60
59
  return `## 标准工作流
61
60
 
62
- **任务规模路由(按 intent 选起点,别对所有任务套全流程)**:\`sf_task(start)\` 已按 intent 路由——大功能(新系统/架构/多产物)进 design 走全产物;**小改动/bug 修复进 build,只做 code + verify(test_plan 按需),不必产需求分析/架构/数据库设计**;改 bug 触及设计产物(如 API 变更)才回 design 更新对应产物。
61
+ **任务规模路由(按 intent 选起点,别对所有任务套全流程)**:\`sf_task(start)\` 已按 intent 路由——大功能(新系统/架构/多产物)进 design 走设计产物(condition 按项目形态过滤:纯前端不产数据库设计文档、纯后端无原型素材不产原型说明,见四领域表 [条件]);**小改动/bug 修复进 build,只做 code + verify(test_plan 按需),不必产需求分析/架构/数据库设计**;改 bug 触及设计产物(如 API 变更)才回 design 更新对应产物。
63
62
 
64
63
  1. \`sf_task(start)\` 声明意图,创建受控任务(拿到 task_id、required_artifacts、next_step)
65
64
  2. \`sf_work(observe)\` 派生状态:哪些产物 pending / unverified / verified、缺什么上游
@@ -75,20 +74,36 @@ function generateWorkflowSection() {
75
74
 
76
75
  **交付前实跑验证纪律(operate/交付,软注入 + slice-gate 硬兜底)**:进 operate 或交付前必须实跑验证并**输出地址给人工**:① \`docker compose build\` 构建最新镜像到本地 docker desktop;② \`docker compose up\` 启动服务;③ 浏览器验证前端交互 + 后端逻辑(核心接口,playwright e2e 验交互链路与接口响应,SLICE-E2E 兜底——不验 UI 视觉);④ 前端 UI 视觉验收(AI 视觉审查截图+结论,主观项人工确认,结论留痕发布说明,见「UI视觉验收纪律」);⑤ **输出访问地址(http://localhost:各服务PORT,逐服务列清楚)给人工查看**。slice-gate(SLICE-BUILD/UP/HTTP/E2E)兜底验证构建/部署/HTTP/E2E,但「输出地址给人工」是交付硬要求——不输出地址人工无法验收,等于没交付。
77
76
 
78
- **切片维度纪律(design,硬约束 SLICE-DIMENSION 兜底)**:切片须**垂直**(端到端业务价值 前端→后端→DB),不按技术层/端横切;骨架/基础设施切片 ≤ 2(多端项目合并一个「全端骨架 + DB」切片,不每端一个骨架)。design-gate SLICE-DIMENSION 硬兜底拦横切——因为 slice-gate 的浏览器验证要求切片垂直:骨架切片无业务可验=验证空转(docker 能跑 ≠ 业务对)。`;
77
+ **切片维度纪律(design,硬约束 SLICE-DIMENSION 兜底)**:切片须**垂直**(端到端业务价值 前端→后端→DB),不按技术层/端横切;骨架/基础设施切片 ≤ 2(多端项目合并一个「全端骨架 + DB」切片,不每端一个骨架)。design-gate SLICE-DIMENSION 硬兜底拦横切——因为 slice-gate 的浏览器验证要求切片垂直:骨架切片无业务可验=验证空转(docker 能跑 ≠ 业务对)。
78
+
79
+ **切片原型消费纪律(build,软注入 + XVAL-SLC-PAGE 硬兜底)**:切片实现(\`sf_work(build, act, target=code, slice_id=SLC-XX)\`)时传 \`slice_id\`(当前切片 ID)→ 引擎据切片计划「对应原型页面」\`{端}/{slug}\` 解析对应页级原型说明全文注入 prompt,让 AI 拿到该页详细 UI 约束(令牌/布局/组件/交互/视觉状态/断点/动效/边界)。design-gate XVAL-SLC-PAGE 硬兜底校验切片绑定的页级原型文件存在——前端切片的「对应原型页面」须填 \`{端}/{slug}\` 格式。
80
+
81
+ **切片级早验纪律(build,软注入 + slice-gate 硬兜底)**:切片实现完成后跑 \`sf_work(build, verify_slice)\`——专门触发切片级门禁(docker compose build/up + HTTP 验收 + playwright e2e 硬验证)。普通 \`verify\` 跳过 slice-gate(不跑 docker/e2e,防开发误伤),故**切片完成后必须显式 verify_slice**——只跑 verify = 切片级 docker/e2e 不验(slice-gate 空转,等于切片没早验)。
82
+
83
+ **受控生成纪律(所有域所有产物,硬要求)**:所有产物(需求分析/原型说明/架构设计文档/数据库设计文档/API接口规格文档/开发切片计划/测试计划/代码审查报告/测试报告/部署配置/发布说明)**必经 \`sf_work\`(observe → act → verify)产出**——\`act\` 组装 prompt + scope 约束 + 自评清单,AI 按 prompt 写文件,\`verify\` 门禁复验。**禁止直接读素材(原型 html/源码/图片、需求文档、现有代码、设计稿)+ 写文档绕过 sf_work**——不经 \`act\` 的产物不受门禁管理(无自评清单/无 verify/无 Reflexion 闭环),等于私自交付。即使你已读素材理解了内容,也必须走 \`sf_task(start) → sf_work(observe) → sf_work(act)\` 让引擎派生状态 + 组装 prompt,**不得自行决定"写文档 vs 走流程"——答案只有一个:走 sf_work**。读素材是为了在 \`act\` 时按 prompt 提取/承接,不是为了绕过引擎直接写文件。`;
79
84
  }
80
- /** 四领域与产物:从域契约派生(单一真相源,产物 kind 变更自动反映) */
85
+ /** 四领域与产物:从域契约派生(单一真相源,产物 kind 变更自动反映)。
86
+ * 产物标中文名(kind ↔ 中文名关联,如 prototype_spec=原型说明)+ 同域依赖(requires)+ 条件(condition)+ 跨域上游(requires_upstream)。 */
81
87
  function generateDomainsSection() {
88
+ const COND_ZH = { "scope:frontend": "涉及前端", "scope:persistence": "涉及持久化", "scope:api": "涉及接口", "scope:code": "涉及代码" };
89
+ const name = (k) => getArtifactDefaults(k)?.defaultName ?? k;
82
90
  const rows = ALL_CONTRACTS.map((c) => {
83
- const produces = c.produces.map((p) => `\`${p.kind}\``).join("、");
91
+ const produces = c.produces.map((p) => {
92
+ let label = `\`${p.kind}\`(${name(p.kind)})`;
93
+ if (p.requires?.length)
94
+ label += ` ←${p.requires.map((r) => name(r.kind)).join("+")}`;
95
+ if (p.condition)
96
+ label += ` [${COND_ZH[p.condition] ?? p.condition}]`;
97
+ return label;
98
+ }).join("、");
84
99
  const upstream = c.requires_upstream.length > 0
85
- ? `(依赖上游:${c.requires_upstream.map((r) => `${r.from_domain}.${r.artifact_kind}`).join("、")})`
100
+ ? `(跨域上游:${c.requires_upstream.map((r) => `${r.from_domain}.${name(r.artifact_kind)}`).join("、")})`
86
101
  : "";
87
102
  return `| ${c.name} | ${c.description} | ${produces}${upstream} |`;
88
103
  });
89
104
  return `## 四领域与产物
90
105
 
91
- | 领域 | 做什么 | 产物 kind |
106
+ | 领域 | 做什么 | 产物(kind 中文名,←同域依赖,[条件])+ 跨域上游 |
92
107
  |---|---|---|
93
108
  ${rows.join("\n")}
94
109
 
@@ -1 +1 @@
1
- {"version":3,"file":"integration_guide.js","sourceRoot":"","sources":["../../../../src/context/adapters/shared/integration_guide.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAGrF;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAsB;IAC9D,OAAO;;;;EAIP,wBAAwB,CAAC,MAAM,CAAC;;EAEhC,iBAAiB,EAAE;;;;;;qBAMA,wBAAwB;CAC5C,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAuB;IAC9D,OAAO,CAAC,sBAAsB,EAAE,EAAE,uBAAuB,EAAE,EAAE,sBAAsB,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxG,CAAC;AAED,qCAAqC;AACrC,SAAS,sBAAsB;IAC7B,MAAM,IAAI,GAAG,2BAA2B,EAAE,CAAC,GAAG,CAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,WAAW,IAAI,CACnD,CAAC;IACF,OAAO;;;;;;EAMP,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACpB,CAAC;AAED,sEAAsE;AACtE,SAAS,uBAAuB;IAC9B,OAAO;;;;;;;;;;;;;;;;;;6NAkBoN,CAAC;AAC9N,CAAC;AAED,0CAA0C;AAC1C,SAAS,sBAAsB;IAC7B,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACnC,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClE,MAAM,QAAQ,GACZ,CAAC,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;YAC5B,CAAC,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;YAC7F,CAAC,CAAC,EAAE,CAAC;QACT,OAAO,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,WAAW,MAAM,QAAQ,GAAG,QAAQ,IAAI,CAAC;IACrE,CAAC,CAAC,CAAC;IACH,OAAO;;;;EAIP,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;;yMAEwL,CAAC;AAC1M,CAAC"}
1
+ {"version":3,"file":"integration_guide.js","sourceRoot":"","sources":["../../../../src/context/adapters/shared/integration_guide.ts"],"names":[],"mappings":"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"}
@@ -1,36 +1,19 @@
1
1
  /**
2
- * Workflow Template — 适配器层模块。
2
+ * Workflow Template — 适配器层 re-export 入口。
3
3
  *
4
4
  * 职责边界:
5
- * - 负责:computeAuthoritativeRulesChecksum 适配器层职责
6
- * - 不负责:不属于本模块的职责由对应模块承担
5
+ * - 负责:re-export 工作流规则生成器(claude_code 适配器从此导入)
6
+ * - 不负责:规则生成逻辑(workflow_rule_generator.ts)、适配器文件写入
7
7
  *
8
- * 被谁调用:适配器初始化、CLI 入口
9
- * 调用谁:node:fs、node:path、node:crypto、gate_registry_bridge、derived_registry、workflow_rule_generator
8
+ * 被谁调用:claude_code/claude_md.ts
9
+ * 调用谁:workflow_rule_generator
10
10
  *
11
- * 数据流:宿主环境 → 适配配置 → 输出给宿主
12
- * 持久化:读写本地文件(详见代码内路径)
13
- */
14
- export { generateWorkflowRules, generateRulesBody, getWorkflowRuleMechanismIds, TEMPLATE_OUTPUT_CHECKSUM, } from "../../../context/templates/workflow_rule_generator.js";
15
- /**
16
- * 计算所有权威规则资产的第一行非注释内容组合的 SHA256 校验和。
17
- * 权威规则内容变化时校验和必然变化。
18
- */
19
- export declare function computeAuthoritativeRulesChecksum(rootDir: string): string;
20
- /**
21
- * 校验工作流模板中每条 @sf-hard-rule 都能找到权威机制注册条目,
22
- * 且其 template_layer 资产文件存在,且内容校验和与嵌入值一致。
23
- */
24
- export declare function validateWorkflowRuleSources(rootDir: string): {
25
- valid: boolean;
26
- missing_mechanisms: string[];
27
- missing_assets: string[];
28
- checksum_mismatch: boolean;
29
- embedded_checksum: string;
30
- computed_checksum: string;
31
- };
32
- /**
33
- * 更新嵌入校验和到源文件。由 CI 或开发者在确认权威规则变化后调用。
11
+ * 数据流:re-export 透传
12
+ * 持久化:无
13
+ *
14
+ * 历史清理:曾含 RULE_SOURCE_CHECKSUM / validateWorkflowRuleSources / computeAuthoritativeRulesChecksum /
15
+ * updateEmbeddedChecksum 等 checksum 自循环死簇(A→B→C→A 零出口,2026-06-23 删)。TEMPLATE_OUTPUT_CHECKSUM
16
+ * 一并清理(装饰性 @sf-checksum 注释无运行时比对,删后 CLAUDE.md 更干净)。
34
17
  */
35
- export declare function updateEmbeddedChecksum(rootDir: string): string;
18
+ export { generateWorkflowRules, generateRulesBody, getWorkflowRuleMechanismIds, } from "../../../context/templates/workflow_rule_generator.js";
36
19
  //# sourceMappingURL=workflow_template.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow_template.d.ts","sourceRoot":"","sources":["../../../../src/context/adapters/shared/workflow_template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAUH,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,uDAAuD,CAAC;AAW/D;;;GAGG;AACH,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAqBzE;AAMD;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG;IAC5D,KAAK,EAAE,OAAO,CAAC;IACf,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CA6BA;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAa9D"}
1
+ {"version":3,"file":"workflow_template.d.ts","sourceRoot":"","sources":["../../../../src/context/adapters/shared/workflow_template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,uDAAuD,CAAC"}