soloforge 1.1.46 → 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 (451) hide show
  1. package/README.md +23 -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 +18 -6
  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 +13 -7
  36. package/dist/core/gate_record_store.d.ts.map +1 -1
  37. package/dist/core/gate_record_store.js +39 -17
  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 +33 -6
  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_registry.d.ts.map +1 -1
  57. package/dist/domain/asset_registry/derived_registry.js +20 -5
  58. package/dist/domain/asset_registry/derived_registry.js.map +1 -1
  59. package/dist/domain/asset_registry/derived_types.d.ts +22 -1
  60. package/dist/domain/asset_registry/derived_types.d.ts.map +1 -1
  61. package/dist/domain/build/contract.d.ts.map +1 -1
  62. package/dist/domain/build/contract.js +3 -8
  63. package/dist/domain/build/contract.js.map +1 -1
  64. package/dist/domain/build/engine.d.ts +4 -2
  65. package/dist/domain/build/engine.d.ts.map +1 -1
  66. package/dist/domain/build/engine.js +38 -5
  67. package/dist/domain/build/engine.js.map +1 -1
  68. package/dist/domain/contracts/design_lifecycle_contract.d.ts.map +1 -1
  69. package/dist/domain/contracts/design_lifecycle_contract.js +11 -4
  70. package/dist/domain/contracts/design_lifecycle_contract.js.map +1 -1
  71. package/dist/domain/design/contract.d.ts.map +1 -1
  72. package/dist/domain/design/contract.js +13 -31
  73. package/dist/domain/design/contract.js.map +1 -1
  74. package/dist/domain/design/engine.d.ts +4 -2
  75. package/dist/domain/design/engine.d.ts.map +1 -1
  76. package/dist/domain/design/engine.js +39 -4
  77. package/dist/domain/design/engine.js.map +1 -1
  78. package/dist/domain/engine_helpers.d.ts +55 -2
  79. package/dist/domain/engine_helpers.d.ts.map +1 -1
  80. package/dist/domain/engine_helpers.js +173 -8
  81. package/dist/domain/engine_helpers.js.map +1 -1
  82. package/dist/domain/operate/contract.js +1 -1
  83. package/dist/domain/operate/contract.js.map +1 -1
  84. package/dist/domain/operate/engine.d.ts +4 -2
  85. package/dist/domain/operate/engine.d.ts.map +1 -1
  86. package/dist/domain/operate/engine.js +23 -3
  87. package/dist/domain/operate/engine.js.map +1 -1
  88. package/dist/domain/types.d.ts +6 -0
  89. package/dist/domain/types.d.ts.map +1 -1
  90. package/dist/domain/types.js.map +1 -1
  91. package/dist/domain/verify/engine.d.ts +4 -2
  92. package/dist/domain/verify/engine.d.ts.map +1 -1
  93. package/dist/domain/verify/engine.js +22 -2
  94. package/dist/domain/verify/engine.js.map +1 -1
  95. package/dist/gate/contracts/tool_actions.d.ts +2 -2
  96. package/dist/gate/contracts/tool_actions.d.ts.map +1 -1
  97. package/dist/gate/contracts/tool_actions.js +2 -2
  98. package/dist/gate/contracts/tool_actions.js.map +1 -1
  99. package/dist/gate/contracts/tool_invocation_contract_registry.js +1 -1
  100. package/dist/gate/contracts/tool_invocation_contract_registry.js.map +1 -1
  101. package/dist/gate/executors/executors_artifact.d.ts +19 -0
  102. package/dist/gate/executors/executors_artifact.d.ts.map +1 -1
  103. package/dist/gate/executors/executors_artifact.js +108 -8
  104. package/dist/gate/executors/executors_artifact.js.map +1 -1
  105. package/dist/gate/executors/executors_build.d.ts.map +1 -1
  106. package/dist/gate/executors/executors_build.js +17 -15
  107. package/dist/gate/executors/executors_build.js.map +1 -1
  108. package/dist/gate/executors/executors_external_command.d.ts.map +1 -1
  109. package/dist/gate/executors/executors_external_command.js +32 -0
  110. package/dist/gate/executors/executors_external_command.js.map +1 -1
  111. package/dist/gate/executors/executors_field_mapping.d.ts +7 -0
  112. package/dist/gate/executors/executors_field_mapping.d.ts.map +1 -0
  113. package/dist/gate/executors/executors_field_mapping.js +179 -0
  114. package/dist/gate/executors/executors_field_mapping.js.map +1 -0
  115. package/dist/gate/executors/executors_prerequisite.d.ts.map +1 -1
  116. package/dist/gate/executors/executors_prerequisite.js +27 -7
  117. package/dist/gate/executors/executors_prerequisite.js.map +1 -1
  118. package/dist/gate/executors/executors_regex_scan.d.ts.map +1 -1
  119. package/dist/gate/executors/executors_regex_scan.js +36 -15
  120. package/dist/gate/executors/executors_regex_scan.js.map +1 -1
  121. package/dist/gate/executors/executors_scope.js +4 -4
  122. package/dist/gate/executors/executors_scope.js.map +1 -1
  123. package/dist/gate/executors/executors_trace.d.ts +5 -0
  124. package/dist/gate/executors/executors_trace.d.ts.map +1 -1
  125. package/dist/gate/executors/executors_trace.js +186 -3
  126. package/dist/gate/executors/executors_trace.js.map +1 -1
  127. package/dist/gate/executors/index.d.ts.map +1 -1
  128. package/dist/gate/executors/index.js +2 -0
  129. package/dist/gate/executors/index.js.map +1 -1
  130. package/dist/gate/gate_engine.d.ts +9 -0
  131. package/dist/gate/gate_engine.d.ts.map +1 -1
  132. package/dist/gate/gate_engine.js +15 -0
  133. package/dist/gate/gate_engine.js.map +1 -1
  134. package/dist/gate/gate_registry_bridge.d.ts +9 -8
  135. package/dist/gate/gate_registry_bridge.d.ts.map +1 -1
  136. package/dist/gate/gate_registry_bridge.js +57 -16
  137. package/dist/gate/gate_registry_bridge.js.map +1 -1
  138. package/dist/gate/middleware_gates.js +1 -1
  139. package/dist/gate/middleware_gates.js.map +1 -1
  140. package/dist/gate/scope_resolver.d.ts +7 -0
  141. package/dist/gate/scope_resolver.d.ts.map +1 -1
  142. package/dist/gate/scope_resolver.js +1 -1
  143. package/dist/gate/scope_resolver.js.map +1 -1
  144. package/dist/index.js +5 -0
  145. package/dist/index.js.map +1 -1
  146. package/dist/server/tools/sf_doctor.d.ts +2 -0
  147. package/dist/server/tools/sf_doctor.d.ts.map +1 -1
  148. package/dist/server/tools/sf_doctor.js +35 -1
  149. package/dist/server/tools/sf_doctor.js.map +1 -1
  150. package/dist/server/tools/sf_gate.d.ts +1 -1
  151. package/dist/server/tools/sf_gate.js +2 -2
  152. package/dist/server/tools/sf_gate.js.map +1 -1
  153. package/dist/server/tools/sf_task.d.ts +83 -0
  154. package/dist/server/tools/sf_task.d.ts.map +1 -1
  155. package/dist/server/tools/sf_task.js +121 -4
  156. package/dist/server/tools/sf_task.js.map +1 -1
  157. package/dist/server/tools/sf_work.d.ts +203 -0
  158. package/dist/server/tools/sf_work.d.ts.map +1 -1
  159. package/dist/server/tools/sf_work.js +549 -46
  160. package/dist/server/tools/sf_work.js.map +1 -1
  161. package/dist/shared/traceability_id_utils.js +3 -3
  162. package/dist/shared/traceability_id_utils.js.map +1 -1
  163. package/dist/verify/contracts/decision_workshop.d.ts.map +1 -1
  164. package/dist/verify/contracts/decision_workshop.js +4 -3
  165. package/dist/verify/contracts/decision_workshop.js.map +1 -1
  166. package/package.json +2 -1
  167. package/templates/build/enforced.md +299 -39
  168. package/templates/build//344/270/223/351/241/271/345/256/236/347/216/260.md +75 -0
  169. package/templates/build//345/256/211/345/205/250/345/212/240/345/233/272.md +75 -0
  170. package/templates/build//346/263/250/351/207/212/347/272/252/345/276/213.md +48 -0
  171. package/templates/build//346/265/213/350/257/225/344/274/230/345/205/210/347/274/226/347/240/201.md +50 -79
  172. package/templates/build//346/265/213/350/257/225/350/256/241/345/210/222.md +31 -24
  173. package/templates/build//347/274/226/347/240/201/347/272/252/345/276/213.md +101 -0
  174. package/templates/build//350/260/203/350/257/225/346/216/222/346/237/245.md +44 -75
  175. package/templates/build//351/207/215/346/236/204/346/226/271/346/263/225.md +68 -0
  176. package/templates/design/API/346/216/245/345/217/243/350/247/204/346/240/274/346/226/207/346/241/243.md +38 -28
  177. package/templates/design/enforced.md +234 -74
  178. 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 +5 -2
  179. package/templates/design//345/205/274/345/256/271/346/200/247/344/270/216/350/277/201/347/247/273/350/257/204/344/274/260.md +71 -0
  180. package/templates/design//345/206/263/347/255/226/344/270/216/351/200/211/345/236/213.md +70 -0
  181. package/templates/design//345/210/207/347/211/207/350/247/204/345/210/222.md +51 -55
  182. package/templates/design//345/274/200/345/217/221/345/210/207/347/211/207/350/256/241/345/210/222.md +75 -0
  183. 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 +35 -47
  184. package/templates/design//346/236/266/346/236/204/350/256/276/350/256/241.md +63 -81
  185. package/templates/design//350/256/276/350/256/241/345/206/263/347/255/226/347/272/252/345/276/213.md +58 -0
  186. package/templates/design//350/256/276/350/256/241/350/264/250/351/207/217/350/246/201/347/202/271.md +58 -0
  187. package/templates/design//351/234/200/346/261/202/345/210/206/346/236/220.md +49 -53
  188. 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
  189. package/templates/operate/enforced.md +52 -5
  190. package/templates/operate//344/270/212/347/272/277/350/247/202/345/257/237.md +53 -32
  191. package/templates/operate//345/217/221/345/270/203/350/257/264/346/230/216.md +22 -1
  192. package/templates/operate//351/203/250/347/275/262/351/205/215/347/275/256.md +93 -0
  193. package/templates/shared/enforced.md +83 -5
  194. package/templates/shared//345/217/215/351/246/210/344/277/256/345/244/215/351/227/255/347/216/257.md +86 -0
  195. 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
  196. package/templates/shared//345/267/245/347/250/213/346/211/247/350/241/214/346/200/273/347/272/262.md +148 -0
  197. package/templates/shared//345/267/245/347/250/213/347/272/252/345/276/213.md +71 -0
  198. package/templates/shared//345/274/200/345/217/221/350/200/205/345/256/252/346/263/225.md +48 -43
  199. package/templates/shared//346/234/272/345/210/266/350/257/264/346/230/216.md +67 -0
  200. package/templates/shared//347/240/224/350/256/250/350/256/260/345/275/225.md +54 -0
  201. package/templates/shared//350/257/201/346/215/256/351/251/261/345/212/250/344/270/216/345/217/215/345/271/273/350/247/211.md +27 -17
  202. package/templates/shared//350/264/241/347/214/256/350/247/204/350/214/203.md +78 -0
  203. package/templates/verify/enforced.md +87 -263
  204. 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 +46 -87
  205. package/templates/verify//344/273/243/347/240/201/345/256/241/346/237/245/346/212/245/345/221/212.md +17 -0
  206. package/templates/verify//345/256/241/346/237/245/346/270/205/345/215/225.md +79 -0
  207. package/templates/verify//346/236/266/346/236/204/350/257/255/344/271/211/347/272/242/347/272/277.md +60 -0
  208. package/templates/verify//351/252/214/350/257/201/346/226/271/346/263/225.md +72 -0
  209. package/dist/core/scope_checker.d.ts +0 -29
  210. package/dist/core/scope_checker.d.ts.map +0 -1
  211. package/dist/core/scope_checker.js +0 -53
  212. package/dist/core/scope_checker.js.map +0 -1
  213. package/templates/build/Bug/345/210/206/346/236/220.md +0 -59
  214. package/templates/build/Git/346/223/215/344/275/234.md +0 -48
  215. package/templates/build/OOD/350/256/276/350/256/241/346/221/230/350/246/201.md +0 -46
  216. package/templates/build/React/346/216/245/345/217/243/351/233/206/346/210/220.md +0 -42
  217. package/templates/build/Schema/345/217/230/346/233/264/346/265/201/346/260/264/347/272/277.md +0 -52
  218. package/templates/build/TS/350/264/250/351/207/217/345/256/241/346/237/245.md +0 -78
  219. package/templates/build//344/270/212/346/270/270/344/272/244/345/217/211/351/252/214/350/257/201.md +0 -68
  220. package/templates/build//344/270/273/351/223/276/350/267/257/346/216/245/345/205/245/351/252/214/350/257/201.md +0 -56
  221. package/templates/build//344/273/243/347/240/201/351/227/250/347/246/201.md +0 -58
  222. package/templates/build//345/205/250/346/240/210/346/265/201/347/250/213/344/277/256/345/244/215.md +0 -48
  223. package/templates/build//345/210/207/347/211/207/346/211/247/350/241/214/347/272/252/345/276/213.md +0 -108
  224. package/templates/build//345/210/207/347/211/207/347/253/257/345/210/260/347/253/257/351/252/214/350/257/201.md +0 -221
  225. package/templates/build//345/212/237/350/203/275/345/274/200/345/217/221.md +0 -66
  226. package/templates/build//345/220/216/347/253/257/345/256/236/347/216/260.md +0 -39
  227. package/templates/build//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213.md +0 -33
  228. package/templates/build//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213/345/256/241/346/237/245.md +0 -70
  229. package/templates/build//345/220/216/347/253/257/346/216/245/345/217/243/345/256/236/347/216/260.md +0 -43
  230. package/templates/build//345/233/275/351/231/205/345/214/226.md +0 -45
  231. package/templates/build//345/256/211/345/205/250/345/212/240/345/233/272/346/265/201/346/260/264/347/272/277.md +0 -68
  232. package/templates/build//345/256/211/345/205/250/345/256/241/346/237/245.md +0 -154
  233. package/templates/build//345/256/211/345/205/250/345/256/241/350/256/241.md +0 -47
  234. package/templates/build//345/267/245/347/250/213/347/272/252/345/276/213.md +0 -56
  235. package/templates/build//346/200/247/350/203/275/345/210/206/346/236/220.md +0 -59
  236. package/templates/build//346/200/247/350/203/275/346/265/201/346/260/264/347/272/277.md +0 -53
  237. package/templates/build//346/216/245/345/217/243/351/233/206/346/210/220/346/265/201/346/260/264/347/272/277.md +0 -76
  238. package/templates/build//346/225/260/346/215/256/345/272/223/350/277/201/347/247/273.md +0 -63
  239. package/templates/build//346/226/260/350/200/201/351/200/273/350/276/221/346/257/224/345/257/271/346/227/245/345/277/227.md +0 -39
  240. package/templates/build//346/235/203/351/231/220/350/256/244/350/257/201.md +0 -49
  241. package/templates/build//346/265/213/350/257/225/350/264/250/351/207/217.md +0 -45
  242. package/templates/build//347/206/224/346/226/255/351/231/215/347/272/247.md +0 -49
  243. package/templates/build//347/212/266/346/200/201/346/265/201/350/275/254.md +0 -43
  244. package/templates/build//347/213/254/347/253/213/345/256/241/346/237/245.md +0 -45
  245. package/templates/build//347/272/246/346/235/237/345/256/236/347/216/260.md +0 -47
  246. package/templates/build//347/274/226/347/240/201/345/260/261/347/273/252/345/256/241/346/237/245.md +0 -60
  247. package/templates/build//347/274/226/347/240/201/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -22
  248. package/templates/build//347/274/226/347/240/201/350/264/250/351/207/217.md +0 -46
  249. package/templates/build//347/274/226/347/240/201/351/230/266/346/256/265/346/211/247/350/241/214.md +0 -105
  250. package/templates/build//347/274/272/351/231/267/347/256/241/347/220/206.md +0 -47
  251. package/templates/build//350/200/246/345/220/210/346/243/200/346/265/213.md +0 -86
  252. package/templates/build//350/246/206/347/233/226/347/216/207/346/240/207/345/207/206.md +0 -40
  253. package/templates/build//350/264/250/351/207/217/345/256/241/346/237/245.md +0 -111
  254. package/templates/build//350/277/201/347/247/273/346/265/201/346/260/264/347/272/277.md +0 -52
  255. package/templates/build//351/200/232/347/224/250/350/264/250/351/207/217.md +0 -176
  256. package/templates/build//351/207/215/346/236/204/346/226/271/346/241/210.md +0 -61
  257. package/templates/build//351/207/215/346/236/204/346/265/201/346/260/264/347/272/277.md +0 -53
  258. package/templates/build//351/230/262/345/276/241/346/200/247/347/274/226/347/240/201.md +0 -94
  259. package/templates/build//351/233/206/346/210/220/351/252/214/350/257/201.md +0 -67
  260. package/templates/build//351/233/267/345/214/272/345/217/215/346/250/241/345/274/217.md +0 -135
  261. package/templates/build//351/252/214/346/224/266/346/240/207/345/207/206/345/256/241/346/237/245.md +0 -64
  262. package/templates/build//351/252/214/346/224/266/346/265/213/350/257/225/350/247/204/345/210/222.md +0 -75
  263. package/templates/design/API/350/256/276/350/256/241.md +0 -47
  264. package/templates/design/N/345/212/2401/346/237/245/350/257/242.md +0 -48
  265. package/templates/design/OOD/350/256/276/350/256/241.md +0 -72
  266. package/templates/design//344/270/200/350/207/264/346/200/247/346/240/241/351/252/214.md +0 -109
  267. package/templates/design//344/270/215/347/241/256/345/256/232/346/227/266/345/244/264/350/204/221/351/243/216/346/232/264.md +0 -105
  268. package/templates/design//344/273/273/345/212/241/346/213/206/350/247/243.md +0 -61
  269. package/templates/design//344/273/273/345/212/241/350/247/204/345/210/222.md +0 -84
  270. package/templates/design//344/274/232/350/257/235/346/201/242/345/244/215-procedures.md +0 -78
  271. package/templates/design//345/205/274/345/256/271/346/200/247/346/243/200/346/237/245.md +0 -89
  272. package/templates/design//345/210/207/347/211/207/350/256/241/345/210/222.md +0 -149
  273. package/templates/design//345/211/215/347/253/257/346/200/247/350/203/275.md +0 -49
  274. package/templates/design//345/216/206/345/217/262/351/201/227/347/225/231/351/233/267/345/214/272/346/270/205/345/215/225.md +0 -50
  275. package/templates/design//345/216/237/345/236/213/346/272/220/347/240/201/346/217/220/345/217/226.md +0 -78
  276. package/templates/design//345/216/237/345/236/213/350/257/264/346/230/216.md +0 -200
  277. package/templates/design//345/216/237/345/236/213/350/257/264/346/230/216/345/256/241/346/237/245.md +0 -81
  278. package/templates/design//345/220/221/345/220/216/345/205/274/345/256/271/346/200/247/345/220/210/350/247/204/346/212/245/345/221/212.md +0 -52
  279. package/templates/design//345/221/275/344/273/244/346/211/247/350/241/214-procedures.md +0 -45
  280. package/templates/design//345/221/275/344/273/244/350/267/257/347/224/261-procedures.md +0 -46
  281. package/templates/design//345/221/275/345/220/215.md +0 -49
  282. package/templates/design//345/242/236/351/207/217/350/276/271/347/225/214/347/225/214/345/256/232/346/226/207/346/241/243.md +0 -48
  283. package/templates/design//345/267/245/345/205/267/350/260/203/347/224/250-procedures.md +0 -41
  284. package/templates/design//345/271/266/345/217/221/346/216/247/345/210/266.md +0 -50
  285. package/templates/design//346/212/200/346/234/257/351/200/211/345/236/213.md +0 -33
  286. package/templates/design//346/216/245/345/217/243/345/257/271/346/216/245/346/226/271/346/241/210.md +0 -97
  287. package/templates/design//346/224/271/351/200/240/345/275/261/345/223/215/350/214/203/345/233/264/350/257/204/344/274/260.md +0 -56
  288. package/templates/design//346/225/260/346/215/256/345/272/223/345/217/230/346/233/264/346/226/271/346/241/210.md +0 -75
  289. package/templates/design//346/225/260/346/215/256/350/241/200/347/274/230/345/233/276.md +0 -49
  290. package/templates/design//346/227/240/351/232/234/347/242/215.md +0 -49
  291. package/templates/design//346/236/266/346/236/204/345/206/263/347/255/226/350/256/260/345/275/225.md +0 -53
  292. package/templates/design//346/236/266/346/236/204/345/256/241/346/237/245.md +0 -256
  293. package/templates/design//346/236/266/346/236/204/350/256/276/350/256/241-constraints.md +0 -177
  294. package/templates/design//346/236/266/346/236/204/350/256/276/350/256/241-procedures.md +0 -130
  295. package/templates/design//346/246/202/345/277/265/351/252/214/350/257/201/346/265/201/346/260/264/347/272/277.md +0 -47
  296. package/templates/design//346/272/220/347/240/201/345/216/237/345/236/213/344/272/244/344/273/230.md +0 -58
  297. package/templates/design//347/216/260/346/234/211/347/263/273/347/273/237/345/267/256/350/267/235/345/210/206/346/236/220.md +0 -114
  298. package/templates/design//347/237/245/350/257/206/347/273/264/346/212/244/346/265/201/346/260/264/347/272/277.md +0 -64
  299. package/templates/design//347/254/254/344/270/200/346/200/247/345/216/237/347/220/206/346/216/250/347/220/206.md +0 -182
  300. package/templates/design//347/264/247/346/200/245/345/233/236/346/273/232/346/211/213/345/206/214.md +0 -77
  301. package/templates/design//347/274/226/347/240/201/345/211/215/346/276/204/346/270/205.md +0 -85
  302. package/templates/design//350/200/201/347/263/273/347/273/237/345/210/207/347/211/207/350/247/204/345/210/222.md +0 -48
  303. package/templates/design//350/207/252/344/270/273/351/200/211/345/236/213.md +0 -57
  304. package/templates/design//350/256/276/350/256/241/344/270/200/350/207/264/346/200/247/351/252/214/346/224/266/346/212/245/345/221/212.md +0 -34
  305. package/templates/design//350/256/276/350/256/241/344/272/247/347/211/251/347/224/237/346/210/220/344/270/216/345/244/215/351/252/214.md +0 -60
  306. package/templates/design//350/256/276/350/256/241/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -21
  307. package/templates/design//350/257/246/347/273/206/350/256/276/350/256/241-procedures.md +0 -123
  308. package/templates/design//350/257/246/347/273/206/350/256/276/350/256/241.md +0 -109
  309. package/templates/design//350/257/246/347/273/206/350/256/276/350/256/241/345/256/241/346/237/245.md +0 -88
  310. package/templates/design//350/260/203/350/257/225/346/226/271/346/263/225/350/256/272.md +0 -43
  311. package/templates/design//350/277/201/347/247/273/350/257/204/344/274/260.md +0 -67
  312. package/templates/design//351/232/224/347/246/273/351/200/202/351/205/215/345/231/250/346/226/271/346/241/210.md +0 -44
  313. package/templates/design//351/234/200/346/261/202/346/276/204/346/270/205.md +0 -65
  314. package/templates/design//351/234/200/346/261/202/350/264/250/351/207/217/345/256/241/346/237/245.md +0 -88
  315. package/templates/design//351/242/206/345/237/237/351/251/261/345/212/250/350/256/276/350/256/241.md +0 -43
  316. package/templates/operate//345/217/221/345/270/203/350/257/264/346/230/216/345/256/241/346/237/245.md +0 -60
  317. package/templates/operate//350/277/220/347/273/264/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -22
  318. package/templates/operate//351/203/250/347/275/262/351/205/215/347/275/256/345/256/241/346/237/245.md +0 -59
  319. package/templates/shared/Diff/345/275/222/345/261/236/350/277/275/350/270/252.md +0 -55
  320. package/templates/shared/Java/350/264/250/351/207/217/351/227/250/347/246/201.md +0 -54
  321. package/templates/shared/OOD/344/270/216SOLID/350/256/276/350/256/241.md +0 -48
  322. package/templates/shared//344/272/247/347/211/251Schema/346/263/250/345/206/214/344/270/255/345/277/203.md +0 -57
  323. package/templates/shared//344/272/247/347/211/251/345/245/221/347/272/246.md +0 -44
  324. package/templates/shared//344/273/243/347/240/201/346/263/250/351/207/212/344/270/216/346/227/245/345/277/227/345/245/221/347/272/246.md +0 -116
  325. package/templates/shared//344/273/273/345/212/241/344/270/212/344/270/213/346/226/207/347/224/237/345/221/275/345/221/250/346/234/237.md +0 -45
  326. package/templates/shared//344/273/273/345/212/241/347/212/266/346/200/201/346/234/272.md +0 -55
  327. package/templates/shared//344/273/273/345/212/241/347/256/241/347/220/206/345/231/250.md +0 -55
  328. package/templates/shared//344/274/230/351/233/205/345/201/234/346/234/272.md +0 -43
  329. package/templates/shared//344/275/234/347/224/250/345/237/237/344/270/216/345/257/206/351/222/245/346/213/246/346/210/252.md +0 -54
  330. package/templates/shared//344/275/234/347/224/250/345/237/237/347/247/237/347/272/246.md +0 -55
  331. package/templates/shared//345/206/262/347/252/201/351/227/250/347/246/201.md +0 -55
  332. package/templates/shared//345/206/263/347/255/226/347/275/221/345/205/263.md +0 -47
  333. package/templates/shared//345/210/207/347/211/207/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -72
  334. package/templates/shared//345/217/230/345/274/202/345/256/241/350/256/241.md +0 -58
  335. package/templates/shared//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213/345/245/221/347/272/246.md +0 -40
  336. package/templates/shared//345/221/275/344/273/244/346/211/247/350/241/214.md +0 -48
  337. package/templates/shared//345/221/275/344/273/244/350/267/257/347/224/261.md +0 -45
  338. package/templates/shared//345/233/236/345/275/222/347/237/251/351/230/265.md +0 -54
  339. package/templates/shared//345/244/232/347/247/237/346/210/267.md +0 -49
  340. package/templates/shared//345/256/241/350/256/241/346/227/245/345/277/227.md +0 -46
  341. package/templates/shared//345/257/274/345/205/245/345/257/274/345/207/272.md +0 -51
  342. package/templates/shared//345/267/245/344/275/234/345/214/272/344/272/222/346/226/245/351/224/201.md +0 -52
  343. package/templates/shared//345/267/245/344/275/234/345/214/272/345/224/244/351/206/222.md +0 -54
  344. package/templates/shared//345/267/245/344/275/234/346/265/201/345/245/221/347/272/246.md +0 -42
  345. package/templates/shared//345/267/245/344/275/234/346/265/201/345/274/225/346/223/216.md +0 -50
  346. package/templates/shared//345/267/245/344/275/234/346/265/201/346/250/241/347/211/210/345/214/205.md +0 -34
  347. package/templates/shared//345/267/245/345/205/267/350/260/203/347/224/250.md +0 -48
  348. package/templates/shared//345/271/266/345/217/221/351/224/201.md +0 -57
  349. package/templates/shared//346/211/247/350/241/214/345/256/210/345/215/253/350/257/204/344/274/260.md +0 -47
  350. package/templates/shared//346/211/251/345/261/225/347/224/237/345/221/275/345/221/250/346/234/237.md +0 -34
  351. package/templates/shared//346/212/200/346/234/257/345/206/263/347/255/226/344/270/273/346/235/203.md +0 -50
  352. package/templates/shared//346/212/245/350/241/250/347/273/237/350/256/241.md +0 -50
  353. package/templates/shared//346/224/257/344/273/230.md +0 -51
  354. package/templates/shared//346/225/217/346/204/237/344/277/241/346/201/257/345/244/204/347/220/206.md +0 -77
  355. package/templates/shared//346/225/217/346/204/237/344/277/241/346/201/257/346/211/253/346/217/217.md +0 -53
  356. package/templates/shared//346/225/260/346/215/256/346/235/203/351/231/220.md +0 -47
  357. package/templates/shared//346/226/275/345/267/245/346/214/207/344/273/244/345/245/221/347/272/246.md +0 -69
  358. package/templates/shared//346/227/245/345/277/227/346/262/273/347/220/206.md +0 -31
  359. package/templates/shared//346/234/272/345/210/266/350/207/252/346/262/273/347/220/206.md +0 -31
  360. package/templates/shared//346/240/207/345/207/206/350/265/204/344/272/247/350/246/206/347/233/226.md +0 -50
  361. package/templates/shared//346/240/270/345/277/203/344/275/223/351/252/214/345/216/237/345/210/231.md +0 -38
  362. package/templates/shared//346/240/270/345/277/203/345/267/245/347/250/213/346/211/247/350/241/214/345/216/237/345/210/231.md +0 -154
  363. package/templates/shared//346/250/241/347/211/210Frontmatter.md +0 -125
  364. package/templates/shared//346/250/241/347/211/210/350/264/241/347/214/256/346/214/207/345/215/227.md +0 -282
  365. package/templates/shared//346/250/241/347/211/210/350/265/204/344/272/247/345/217/257/350/247/201/346/200/247.md +0 -48
  366. package/templates/shared//346/262/273/347/220/206/350/277/220/350/241/214/346/227/266/345/276/252/347/216/257.md +0 -56
  367. package/templates/shared//346/263/250/345/206/214/350/241/250/345/237/272/347/241/200/350/256/276/346/226/275.md +0 -49
  368. package/templates/shared//346/274/224/350/277/233/345/233/236/345/275/222/351/227/250/346/216/247.md +0 -50
  369. package/templates/shared//347/224/250/346/210/267/345/217/215/351/246/210/345/245/221/347/272/246.md +0 -86
  370. package/templates/shared//347/237/245/350/257/206/344/270/273/346/235/203.md +0 -66
  371. package/templates/shared//347/237/245/350/257/206/346/262/273/347/220/206.md +0 -31
  372. package/templates/shared//347/237/245/350/257/206/346/263/250/345/205/245/350/276/271/347/225/214.md +0 -47
  373. package/templates/shared//347/273/206/350/212/202/347/272/252/345/276/213.md +0 -54
  374. package/templates/shared//350/204/221/346/232/264/344/270/216/346/226/271/346/241/210/346/216/242/347/264/242.md +0 -51
  375. package/templates/shared//350/256/241/345/210/222/345/211/215/347/275/256/351/227/250.md +0 -47
  376. package/templates/shared//350/256/276/350/256/241/344/272/247/347/211/251/345/214/205.md +0 -58
  377. package/templates/shared//350/257/255/344/271/211/350/257/201/346/215/256.md +0 -55
  378. package/templates/shared//350/267/250/345/271/263/345/217/260/350/267/257/345/276/204/345/256/211/345/205/250.md +0 -41
  379. package/templates/shared//350/276/223/345/205/245/346/235/220/346/226/231/345/245/221/347/272/246.md +0 -50
  380. package/templates/shared//350/277/220/350/241/214/345/256/211/345/205/250/345/214/205.md +0 -58
  381. package/templates/shared//351/200/232/347/224/250/345/206/263/347/255/226/347/240/224/350/256/250.md +0 -62
  382. package/templates/shared//351/200/232/347/224/250/346/234/272/346/242/260/346/235/241/346/254/276.md +0 -47
  383. package/templates/shared//351/200/232/347/237/245.md +0 -50
  384. package/templates/shared//351/203/250/347/275/262/351/205/215/347/275/256.md +0 -14
  385. package/templates/shared//351/205/215/347/275/256/344/274/230/345/205/210/347/272/247.md +0 -67
  386. package/templates/shared//351/205/215/347/275/256/350/220/275/347/233/230/350/276/271/347/225/214.md +0 -32
  387. package/templates/shared//351/230/262/345/255/244/345/262/233/345/256/236/347/216/260.md +0 -51
  388. package/templates/shared//351/233/266/351/205/215/347/275/256/345/210/235/345/247/213/345/214/226.md +0 -57
  389. package/templates/shared//351/252/214/346/224/266/346/250/241/347/211/210/350/276/223/345/207/272/345/245/221/347/272/246.md +0 -71
  390. package/templates/shared//351/252/214/350/257/201/345/221/275/344/273/244/347/224/237/346/210/220.md +0 -55
  391. package/templates/shared//351/252/214/350/257/201/345/245/221/347/272/246.md +0 -48
  392. package/templates/verify/Docker/351/203/250/347/275/262.md +0 -46
  393. package/templates/verify/POC/347/273/223/350/256/272.md +0 -53
  394. package/templates/verify/React/345/210/227/350/241/250/350/241/250/346/240/274.md +0 -43
  395. package/templates/verify/React/347/212/266/346/200/201/347/256/241/347/220/206.md +0 -42
  396. package/templates/verify/React/347/273/204/344/273/266.md +0 -42
  397. package/templates/verify/React/350/241/250/345/215/225.md +0 -43
  398. package/templates/verify/React/350/267/257/347/224/261.md +0 -43
  399. package/templates/verify/SOLID/344/273/243/347/240/201/345/256/241/346/237/245.md +0 -74
  400. package/templates/verify/SOLID/350/256/276/350/256/241.md +0 -31
  401. package/templates/verify/Schema/345/205/274/345/256/271.md +0 -42
  402. package/templates/verify/Vue/347/212/266/346/200/201/347/256/241/347/220/206.md +0 -42
  403. package/templates/verify/Vue/347/273/204/344/273/266.md +0 -42
  404. package/templates/verify/Vue/350/267/257/347/224/261.md +0 -43
  405. package/templates/verify//344/270/212/346/270/270/350/256/276/350/256/241/344/272/244/345/217/211/351/252/214/350/257/201/345/256/241/346/237/245.md +0 -76
  406. package/templates/verify//344/270/273/351/223/276/350/267/257/346/216/245/345/205/245.md +0 -38
  407. package/templates/verify//344/272/213/344/273/266/351/251/261/345/212/250.md +0 -46
  408. package/templates/verify//344/272/213/345/212/241/346/250/241/345/274/217.md +0 -42
  409. package/templates/verify//344/273/243/347/240/201/345/217/257/347/273/264/346/212/244/346/200/247/344/270/216/345/217/257/350/247/202/346/265/213/346/200/247/345/256/241/346/237/245.md +0 -92
  410. package/templates/verify//344/273/243/347/240/201/346/263/250/351/207/212/344/270/216/346/227/245/345/277/227/351/252/214/346/224/266.md +0 -64
  411. package/templates/verify//344/274/232/350/257/235/346/201/242/345/244/215.md +0 -46
  412. package/templates/verify//345/206/263/347/255/226/345/256/214/346/225/264/346/200/247/345/256/241/346/237/245.md +0 -71
  413. package/templates/verify//345/210/206/351/241/265/346/237/245/350/257/242.md +0 -41
  414. package/templates/verify//345/211/215/347/253/257/351/241/265/351/235/242.md +0 -40
  415. package/templates/verify//345/216/206/345/217/262/346/225/260/346/215/256/346/270/205/346/264/227/350/204/232/346/234/254.md +0 -55
  416. package/templates/verify//345/217/221/345/270/203/345/220/216/345/256/241/346/237/245.md +0 -73
  417. package/templates/verify//345/220/216/347/253/257API.md +0 -39
  418. package/templates/verify//345/242/236/345/210/240/346/224/271/346/237/245.md +0 -45
  419. package/templates/verify//345/244/226/351/203/250/344/276/235/350/265/226.md +0 -43
  420. package/templates/verify//345/245/221/347/272/246/345/205/274/345/256/271.md +0 -42
  421. package/templates/verify//345/256/232/346/227/266/344/273/273/345/212/241.md +0 -39
  422. package/templates/verify//345/256/236/346/227/266/346/216/250/351/200/201.md +0 -48
  423. package/templates/verify//345/256/241/346/237/245/346/221/230/350/246/201.md +0 -58
  424. package/templates/verify//345/267/245/344/275/234/346/265/201.md +0 -38
  425. package/templates/verify//345/271/266/345/217/221/345/256/241/346/237/245.md +0 -132
  426. package/templates/verify//345/274/202/346/255/245/345/257/274/345/207/272.md +0 -41
  427. package/templates/verify//346/200/247/350/203/275/345/256/241/346/237/245.md +0 -110
  428. package/templates/verify//346/216/245/345/217/243/345/245/221/347/272/246.md +0 -44
  429. package/templates/verify//346/216/245/345/217/243/345/245/221/347/272/246/345/256/241/346/237/245.md +0 -131
  430. package/templates/verify//346/220/234/347/264/242/346/250/241/345/274/217.md +0 -47
  431. package/templates/verify//346/225/205/351/232/234/345/244/215/347/233/230.md +0 -67
  432. package/templates/verify//346/225/260/346/215/256/345/272/223/345/217/230/346/233/264.md +0 -37
  433. package/templates/verify//346/225/260/346/215/256/351/232/220/347/247/201.md +0 -46
  434. package/templates/verify//346/226/207/344/273/266/344/270/212/344/274/240.md +0 -45
  435. package/templates/verify//346/227/245/345/277/227.md +0 -45
  436. package/templates/verify//346/234/254/345/234/260/346/265/217/350/247/210/345/231/250/351/252/214/346/224/266.md +0 -94
  437. package/templates/verify//346/240/270/345/277/203/345/267/245/347/250/213/346/211/247/350/241/214.md +0 -65
  438. package/templates/verify//347/237/245/350/257/206/346/263/250/345/205/245.md +0 -38
  439. package/templates/verify//347/264/247/346/200/245/344/277/256/345/244/215/346/265/201/346/260/264/347/272/277.md +0 -76
  440. package/templates/verify//347/274/223/345/255/230/347/255/226/347/225/245.md +0 -45
  441. package/templates/verify//350/201/224/350/260/203/350/256/276/350/256/241/347/274/272/351/231/267/345/210/244/345/256/232.md +0 -67
  442. package/templates/verify//350/201/224/350/260/203/351/252/214/350/257/201.md +0 -87
  443. package/templates/verify//350/256/276/350/256/241/345/256/241/350/256/241.md +0 -184
  444. package/templates/verify//350/257/225/350/277/220/350/241/214/347/206/224/346/226/255.md +0 -74
  445. package/templates/verify//350/276/223/345/205/245/346/240/241/351/252/214.md +0 -44
  446. package/templates/verify//351/203/250/347/275/262/345/217/221/345/270/203.md +0 -101
  447. package/templates/verify//351/224/231/350/257/257/345/244/204/347/220/206.md +0 -46
  448. package/templates/verify//351/224/231/350/257/257/350/276/271/347/225/214.md +0 -38
  449. package/templates/verify//351/232/220/347/247/201/345/256/241/346/237/245.md +0 -37
  450. package/templates/verify//351/252/214/350/257/201.md +0 -38
  451. package/templates/verify//351/252/214/350/257/201/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -22
@@ -2,17 +2,21 @@
2
2
  id: shared-enforced
3
3
  kind: enforced
4
4
  gate: shared-gate
5
- title: 跨阶段通用强制检查清单
5
+ title: 共享硬底线
6
6
  sync_policy: engine_only
7
7
  status: active
8
+ extra:
9
+ owner_mechanism: mc-stage-gate-engine
8
10
  checks:
11
+ # —— SoloForge 自身架构边界(守护引擎不被污染)——
9
12
  - id: SHD-LLM01
10
13
  executor: regex_pattern_scan
11
14
  rule: "SoloForge 源码禁止直接调用 LLM API(架构边界:编排引擎不绑定模型,产出上限由客户端 AI 决定)"
12
15
  severity: error
13
16
  check_type: deterministic
14
17
  pattern: '/(?:anthropic|openai)\.(?:messages|chat)\.(?:create|completions)|new\s+Anthropic\(|new\s+OpenAI\(/'
15
- languages: [通用]
18
+ languages:
19
+ - 通用
16
20
  evidence_required:
17
21
  - "regex_pattern_scan 扫描结果(src/ 无 LLM API 直接调用命中)"
18
22
  gate: shared-gate
@@ -23,13 +27,87 @@ checks:
23
27
  severity: warning
24
28
  check_type: deterministic
25
29
  pattern: '/throw\s+new\s+Error\(\s*"[A-Za-z]/'
26
- languages: [ts, 通用]
30
+ languages:
31
+ - ts
32
+ - 通用
27
33
  evidence_required:
28
34
  - "regex_pattern_scan 扫描结果(src/ 无英文 throw Error/日志)"
29
35
  gate: shared-gate
30
36
  target: self
37
+ # —— 用户项目代码安全底线 ——
38
+ - id: SEC-01
39
+ executor: regex_pattern_scan
40
+ rule: "禁止提交私钥内容(含 BEGIN PRIVATE KEY 头)"
41
+ severity: error
42
+ check_type: deterministic
43
+ pattern: '/-----BEGIN (RSA |EC |DSA |OPENSSH |)PRIVATE KEY-----/'
44
+ languages:
45
+ - 通用
46
+ evidence_required:
47
+ - "regex_pattern_scan 扫描结果(git diff 变更文件无私钥泄露)"
48
+ gate: shared-gate
49
+ target: self
50
+ - id: SEC-02
51
+ executor: regex_pattern_scan
52
+ rule: "禁止硬编码高熵密钥/密码(password/secret/api_key/token 赋值字面量)"
53
+ severity: warning
54
+ check_type: deterministic
55
+ pattern: "/(password|passwd|secret|api[_-]?key|access[_-]?key|private[_-]?key|auth[_-]?token)\\s*[:=]\\s*[\"'][^\"'\\s]{12,}/i"
56
+ languages:
57
+ - 通用
58
+ evidence_required:
59
+ - "regex_pattern_scan 扫描结果(命中须确认是否测试 fixture/文档示例,真实密钥必须改走环境变量或密钥管理)"
60
+ gate: shared-gate
61
+ target: self
62
+ # —— 切片级验证(slice-gate:构建镜像/docker 部署/HTTP 验收/浏览器端到端)——
63
+ - id: SLICE-BUILD
64
+ executor: external_command
65
+ command: docker
66
+ args: ["compose", "build"]
67
+ rule: "切片完成后构建最新本地镜像(docker compose build)。有 docker-compose.yml 硬验(error,失败=构建问题);无则跳过(新项目放行,产 compose 后自动生效)"
68
+ severity: error
69
+ check_type: deterministic
70
+ evidence_required: ["docker compose build exitCode=0"]
71
+ gate: slice-gate
72
+ target: self
73
+ - id: SLICE-UP
74
+ executor: docker_deployment
75
+ rule: "docker desktop 部署(docker-compose up)验证部署成功"
76
+ severity: warning
77
+ check_type: deterministic
78
+ evidence_required: ["docker compose up 成功 + 容器健康"]
79
+ gate: slice-gate
80
+ target: self
81
+ - id: SLICE-HTTP
82
+ executor: local_http_acceptance
83
+ rule: "HTTP 验收(可访问性)—— 服务可访问 + 核心接口返回 2xx/3xx(local_http_acceptance 逐端口 fetch 验可达;业务返回正确性归人工/E2E,非本 check 确定性覆盖)"
84
+ severity: warning
85
+ check_type: deterministic
86
+ evidence_required: ["HTTP 请求响应通过"]
87
+ gate: slice-gate
88
+ target: self
89
+ - id: SLICE-E2E
90
+ executor: external_command
91
+ command: npx
92
+ args: ["playwright", "test"]
93
+ rule: "浏览器端到端验证(前端交互 + 后端逻辑)—— playwright e2e(验交互链路与接口响应,不验 UI 视觉样式)。有 playwright.config 硬验(error,失败=e2e 问题);无跳过(Claude Code npx playwright install + 加配置后生效,新项目放行)。注:UI 视觉样式(布局/颜色/响应式视觉/与设计稿一致)属非确定性判断,不归本 e2e——归 L2 客户端 AI 视觉审查 + L3 人工确认(见 operate 域「UI视觉验收纪律」guidance,交付前在发布说明留痕)。"
94
+ severity: error
95
+ check_type: deterministic
96
+ evidence_required: ["playwright test exitCode=0"]
97
+ gate: slice-gate
98
+ target: self
31
99
  ---
32
100
 
33
- # shared-gate 跨阶段通用强制检查清单
101
+ # shared-gate 共享硬底线
102
+
103
+ 跨所有阶段、不可商量的底线。`gate_registry_bridge` 从此文件聚合到 shared-gate。分两类:
104
+
105
+ **SoloForge 自身架构边界**(守护引擎源码不被污染):
106
+ - `SHD-LLM01`:源码不直接调 LLM(error)—— 编排引擎不绑定模型
107
+ - `SHD-COMMENT01`:源码错误/日志中文(warning)
108
+
109
+ **用户项目代码安全底线**:
110
+ - `SEC-01`:私钥泄露(error,高确定性零误报)
111
+ - `SEC-02`:硬编码密钥(warning,可能误报测试 fixture,命中后人工确认)
34
112
 
35
- 跨阶段通用强制规则(所有研发阶段都适用,由 shared-gate 聚合)。
113
+ > 各域代码质量门禁(中文注释/无空 catch/类型安全/Controller 不含业务逻辑等)见对应域 enforced;路径穿越写入由运行时 scope_controller 强制,不在此重复。
@@ -0,0 +1,86 @@
1
+ ---
2
+ id: ka-guidance-反馈修复闭环
3
+ kind: guidance
4
+ title: 反馈修复闭环
5
+ sync_policy: copy_to_project
6
+ status: active
7
+ triggers:
8
+ - 验证失败
9
+ - 门禁失败
10
+ - 检查失败
11
+ - 修复
12
+ - fix
13
+ - 重试
14
+ - retry
15
+ - escalate
16
+ - 反馈
17
+ - 复验
18
+ - 修复闭环
19
+ - gate
20
+ - 复检
21
+ extra:
22
+ name: feedback-repair-loop
23
+ scope:
24
+ - '*'
25
+ products:
26
+ - '*'
27
+ type: procedure
28
+ lifecycle_status: active
29
+ version: 1.0.0
30
+ last_reviewed: '2026-06-17'
31
+ verification_layer: L2
32
+ stage: _global
33
+ owner_mechanism: mc-verifier
34
+ ---
35
+
36
+ # 反馈修复闭环:报错怎么修、修完怎么回来
37
+
38
+ > verify/gate 失败后,按本流程闭环。禁止假修复、禁止跳过。
39
+ > 这是把引擎 Reflexion 机制翻译成可执行步骤。
40
+
41
+ ## 第一步:读懂门禁反馈
42
+
43
+ verify 失败后,引擎把上次失败的 findings 注入回来。每条 finding 含:
44
+ - `id`:检查项编号(如 ARC-01、SEC-01)
45
+ - `severity`:`error`(必须修)/ `warning`(应当修)/ `info`(advisory 参考)
46
+ - `message`:技术原因(为什么失败)
47
+ - `evidence_required`:补什么证据才算修好
48
+
49
+ 还有一段大白话 `recovery_summary`:整体怎么了、该干什么、有什么 pending 项。
50
+
51
+ ## 第二步:逐条修复(按 severity 分流)
52
+
53
+ **error 级**(必须全修):
54
+ 1. 看 message 定位根因,不是只看表象([[工程执行总纲]] 思考先行)
55
+ 2. 按 evidence_required 补齐证据
56
+ 3. 修复限于同一限界上下文;跨越无关模块必须回到任务拆解
57
+
58
+ **warning 级**(尽量修):
59
+ - 影响小可记录风险后放行,但在交付说明里写清放行理由
60
+
61
+ **info 级(semantic)**:
62
+ - advisory 不阻断,但是给客户端 AI 的评判参考
63
+ - 必须认真评估,不能当没看见;评估结论写进交付说明
64
+
65
+ ## 第三步:修完回到哪一步重验
66
+
67
+ - 修复的是哪个阶段的产物,就回那个阶段用 `sf_work action=verify` 重验
68
+ - 引擎有 `pending_return` 机制:补产后 verify 通过,可恢复到原域继续推进
69
+ - 不要跨阶段乱跳(跳转受白名单约束)
70
+
71
+ ## 第四步:重试与 escalate
72
+
73
+ - 最多重试 5 次
74
+ - 5 次仍失败 → escalate,转人工,不要硬撑硬绕
75
+
76
+ ## 禁止
77
+
78
+ - 假修复(改了但没解决根因,下次还报)
79
+ - 删断言/降覆盖率/加无关 mock 让门禁过([[工程执行总纲]] 精准修改的硬失败)
80
+ - 隐藏失败 finding
81
+ - 把 advisory 结果当成 required 通过
82
+ - 没有重验就标记完成
83
+
84
+ ## 证据要求
85
+
86
+ 修复后必须给出:改了什么、对应哪条 finding、重验结果(命令 + 输出)。不接受「已修复」三字。
@@ -27,7 +27,7 @@ extra:
27
27
 
28
28
  导航必须把用户确认项分为三类:
29
29
 
30
- 1. `must_confirm`:影响业务口径、架构决策、权限模型、API/数据库语义、陈旧任务处理等不可由 AI 代决的事项。只有这类确认可以阻塞推进。
30
+ 1. `must_confirm`:影响业务口径、架构决策、权限模型、API/数据库语义、陈旧任务处理、**系统形态与交付边界(是否前后端分离、几个端、各端技术栈)**等不可由 AI 代决的事项。只有这类确认可以阻塞推进。
31
31
  2. `should_confirm`:确认后准确性更高,但不确认也允许继续只读分析、初始化、模版同步和低风险准备。
32
32
  3. `auto_resolvable`:可通过命令、复验或修复动作解决的事项,不应要求用户拍板。
33
33
 
@@ -0,0 +1,148 @@
1
+ ---
2
+ id: ka-guidance-工程执行总纲
3
+ kind: guidance
4
+ title: 工程执行总纲
5
+ sync_policy: copy_to_project
6
+ status: active
7
+ triggers:
8
+ - 实现
9
+ - 编码
10
+ - 开发
11
+ - 重构
12
+ - 写代码
13
+ - 改bug
14
+ - 修复
15
+ - 设计
16
+ - 测试
17
+ - 验证
18
+ - 架构
19
+ - 部署
20
+ - 需求
21
+ - 排查
22
+ - 联调
23
+ - 改造
24
+ - 迁移
25
+ extra:
26
+ name: engineering-execution-charter
27
+ scope:
28
+ - '*'
29
+ products:
30
+ - '*'
31
+ type: constraint
32
+ lifecycle_status: active
33
+ version: 2.0.0
34
+ last_reviewed: '2026-06-17'
35
+ verification_layer: L2
36
+ stage: _global
37
+ owner_mechanism: mc-core-engineering-principles
38
+ ---
39
+
40
+ # 工程执行总纲
41
+
42
+ > 所有阶段(需求→设计→实现→测试)的元规则。资深工程师干活的四条硬原则。
43
+ > 每条都要证据证明,不接受 AI 自述。
44
+
45
+ ## 四条原则
46
+
47
+ ### 一、思考先行(Think Before Coding)
48
+
49
+ 编码前先明确:问题是什么、目标是什么、输入和约束是什么、哪里不确定。不假设、不隐藏困惑、不把模糊需求直接转成代码。
50
+
51
+ 必须做到:
52
+ - 区分「可推断事实」「假设」「需要用户确认的问题」
53
+ - 只问最小阻塞问题,不把非阻塞细节抛给用户
54
+ - 把不确定项记录为 assumption,不得假装确定
55
+
56
+ 硬失败(命中即停):
57
+ - 缺必要输入却开始写代码
58
+ - 写入范围不明确却修改文件
59
+ - 外部副作用权限不明确却执行命令
60
+ - 把未知事实写成确定结论
61
+
62
+ 不确定性分级:
63
+ - `blocking`:不问不能继续(写入路径、业务口径、破坏性操作)
64
+ - `material`:可先推进,但必须记录假设和风险
65
+ - `minor`:可合理默认,但在结果里说明
66
+
67
+ ### 二、简单优先(Simplicity First)
68
+
69
+ 用最少代码、最少抽象、最少新增文件解决已确认目标。不为未确认的未来需求提前设计。
70
+
71
+ 必须做到:
72
+ - 最少代码解决问题
73
+ - 引入新抽象/依赖/模块时说明必要性
74
+ - 不为简单 CRUD 强行套复杂模型
75
+
76
+ 硬失败:
77
+ - 为局部问题引入无必要新依赖
78
+ - 为简单修复新增大范围架构层
79
+ - 没有目标支撑却扩展公共 API/配置
80
+
81
+ 「简单」不是少做:
82
+ - 不写测试不叫简单
83
+ - 不接主链路不叫简单
84
+ - 不处理边界/不做错误处理不叫简单
85
+
86
+ ### 三、精准修改(Surgical Changes)
87
+
88
+ 只改必须改的。不顺便重构、不无关格式化、不扩大范围、不污染用户已有改动。
89
+
90
+ 必须做到:
91
+ - 只改必要文件、必要行、必要行为
92
+ - 遇到用户已有修改必须保护,不得回滚
93
+
94
+ 硬失败:
95
+ - 改范围外文件
96
+ - 改与目标无关的行为
97
+ - 未经确认回滚用户已有改动
98
+ - 大范围格式化掩盖真实变更
99
+ - 为让测试过而删断言/降覆盖率/加无关 mock
100
+
101
+ 允许的必要联动:
102
+ - 主链路接入必须改入口文件
103
+ - 类型变化必须改调用方
104
+ - schema 变化必须改 model/query/API
105
+ - contract 状态变化必须改 registry/测试
106
+
107
+ ### 四、目标驱动(Goal-Driven)
108
+
109
+ 先定可验证目标,再执行;执行后必须验证;失败要修并重验,直到通过或明确阻塞。
110
+
111
+ 必须做到:
112
+ - 明确目标和验收标准
113
+ - 禁止「功能正常」「看起来没问题」等模糊成功标准
114
+ - 输出未验证项和人工确认项
115
+
116
+ 硬失败:
117
+ - 没有可验证目标就开始实现
118
+ - 未执行验证却输出「全部通过」
119
+ - 验证失败仍标记完成
120
+ - 隐藏未验证项
121
+
122
+ ## 冲突优先级
123
+
124
+ 原则冲突时按此裁决:
125
+
126
+ ```
127
+ 安全/权限/隐私 > 目标驱动 > 思考先行 > 精准修改 > 简单优先
128
+ ```
129
+
130
+ - 不能为了简单牺牲验证
131
+ - 不能为了少改而不接主链路
132
+ - 不能为了快而隐藏阻塞不确定性
133
+ - 必要验证、必要入口接入、必要错误处理 优先于「少写代码」
134
+
135
+ ## 反规避(核心)
136
+
137
+ 四原则必须由证据证明,AI 自述无效。
138
+
139
+ 伪满足示例(都是违规):
140
+ - 说「已思考清楚」但没有输入/假设/目标证据
141
+ - 说「保持简单」但实际新增大抽象
142
+ - 说「只改必要文件」但 diff 有无关变更
143
+ - 说「验证通过」但没有真实证据
144
+ - 把未执行验证写成「建议验证」后仍标记完成
145
+ - 把用户没确认的业务口径写成事实
146
+
147
+ 自述不能代替:澄清记录 / 假设记录 / 目标定义 / 验证证据。
148
+ required 原则失败不能进入 completed。
@@ -0,0 +1,71 @@
1
+ ---
2
+ id: ka-guidance-工程纪律
3
+ kind: guidance
4
+ title: 工程纪律
5
+ sync_policy: copy_to_project
6
+ status: active
7
+ triggers:
8
+ - 命名
9
+ - 注释
10
+ - 职责
11
+ - 错误处理
12
+ - 异常
13
+ - 日志
14
+ - 代码风格
15
+ - 实现
16
+ - 编码
17
+ - 写代码
18
+ extra:
19
+ name: engineering-discipline
20
+ scope:
21
+ - '*'
22
+ products:
23
+ - '*'
24
+ type: constraint
25
+ lifecycle_status: active
26
+ version: 1.0.0
27
+ last_reviewed: '2026-06-17'
28
+ verification_layer: L2
29
+ stage: _global
30
+ owner_mechanism: mc-detail-discipline
31
+ ---
32
+
33
+ # 工程纪律(基本功)
34
+
35
+ > 合并命名/注释/单一职责/错误处理/日志的基本要求。这是代码质量的底线。
36
+ > 吸收旧的「工程纪律」「细节纪律」「通用机械条款」「代码注释与日志契约」「命名」等碎拆文件。
37
+
38
+ ## 命名
39
+
40
+ - 表达真实含义,禁止含糊/误导/过度缩写/无意义命名
41
+ - 好命名让人少看注释也能懂
42
+ - 命名和行为必须一致(叫 validate 就真的校验,别混着干别的)
43
+
44
+ ## 注释
45
+
46
+ - 解释**为什么**这样做、业务约束、历史原因、边界、风险
47
+ - 不复述代码(`// 给 i 加 1` 是废话)
48
+ - 代码注释、日志消息、用户可见错误提示一律简体中文,技术术语/标识符保留原文
49
+
50
+ ## 单一职责
51
+
52
+ - 一个函数只做一类事
53
+ - 一个函数同时做参数校验+权限判断+数据查询+状态计算+写入+发消息+记日志 → 拆分
54
+ - 单文件/单类职责清晰,避免上帝对象(>20 字段考虑拆分聚合根)
55
+
56
+ ## 错误处理
57
+
58
+ - 禁止空 catch(至少记日志,不得静默吞异常)
59
+ - 错误信息说清楚:哪步失败、关键参数、可能原因、下一步怎么做
60
+ - 用户可见错误用中文;日志用中文,标识符保留原文
61
+
62
+ ## 日志
63
+
64
+ - 统一走 logger(`userInfo`/`userWarn`/`userError`/`debug`/`internalWarn`),禁止 `console.log/error/warn` 直接调用
65
+ - 关键路径有可观测日志,便于排查
66
+ - 敏感信息不得进日志(密钥、token、个人隐私)
67
+
68
+ ## 数据写入边界
69
+
70
+ - 不得向 `.soloforge/tasks/`、`.env`、`.git/`、`node_modules/` 写入(安全底线)
71
+ - 写文件用原子写,避免半写状态
@@ -1,67 +1,72 @@
1
1
  ---
2
- id: ka-pattern-developer_constitution
3
- kind: knowledge
2
+ id: ka-guidance-开发者宪法
3
+ kind: guidance
4
4
  title: 开发者宪法
5
- sync_policy: internal
5
+ sync_policy: copy_to_project
6
6
  status: active
7
+ triggers:
8
+ - 架构
9
+ - 决策
10
+ - 审查
11
+ - 审计
12
+ - 签署
13
+ - 确认
14
+ - 变更
15
+ - 发布
16
+ - 上线
17
+ - 危险操作
18
+ - 删除
19
+ - 重构
20
+ - 迁移
21
+ - 灰度
7
22
  extra:
8
- name: developer_constitution
23
+ name: developer-constitution
9
24
  scope:
10
25
  - '*'
11
26
  products:
12
27
  - '*'
28
+ type: constraint
13
29
  lifecycle_status: active
14
- version: 1.1.0
15
- last_reviewed: '2026-06-01'
16
- type: knowledge
30
+ version: 2.0.0
31
+ last_reviewed: '2026-06-17'
17
32
  verification_layer: L2
18
33
  stage: _global
19
- owner_mechanism: mc-engine-runtime
34
+ owner_mechanism: mc-decision-sovereignty
20
35
  ---
21
36
 
22
- ## 决策规则
37
+ # 开发者宪法
23
38
 
24
- - 我是唯一的架构主权者,AI 的建议不代表最终正确
25
- - 严禁静默交付: 所有 GRAY_BOX BLACK_BOX 级代码审查变更禁止跳过人工确认
26
- - 人工签署格式: [Human-Audit: APPROVED] 或 [Human-Audit: REJECTED]
27
- - 未获得签署的 GRAY/BLACK 变更不得标记为"验证通过"
28
- - 系统随机抽检人类审计真实性: 基于任务摘要生成是/否问题
29
- - 抽检频率: 每 5 次交付至少抽检 1 次
30
- - 抽检问题格式: "任务 {task_id} 的变更中,{摘要细节} 是否为 [是/否]?"
31
- - 人类答错时标记该交付为"待重新审计"
39
+ > 用户是唯一的架构主权者。AI 的建议不代表最终正确。
40
+ > 注意:本宪法原为 knowledge 类(不注入),现改为 guidance 类以保证每次都注入。
32
41
 
33
- ## 逻辑奇点警告触发条件
42
+ ## 决策主权
34
43
 
35
- - LLM Gateway 返回 circuit_open = true
36
- - 单任务 Token 超过阈值,remaining_task_budget <= 0
37
- - 验证 3 次重试仍失败
38
- - 变异审计发现测试"自己证明自己"且覆盖率联动显示 0% 覆盖
39
- - 知识漂移 drift_ratio >= 0.5 且根因分析为 code_degradation
44
+ - 用户是唯一的架构主权者,AI 的建议不代表最终正确
45
+ - 重大技术决策须经用户确认,AI 不得自行拍板架构级选型
46
+ - 跳过决策研讨须用户明确声明,AI 不得自行跳过
47
+ - 每条架构决策须有对应记录,禁止口头决策不留痕
40
48
 
41
- ## 验收项
49
+ ## 禁止静默交付
42
50
 
43
- - [AC-01] GRAY/BLACK 变更展示后等待人类签署
44
- - [AC-02] 未签署的变更无法推进状态记录
45
- - [AC-03] 抽检问题基于实际任务摘要生成
46
- - [AC-04] 逻辑奇点警告以 ⚠ 符号开头并包含具体触发原因
47
- - [AC-05] core/ 目录下的规则修改需人工签署双重确认
51
+ - 所有 GRAY_BOX 和 BLACK_BOX 级代码审查变更禁止跳过人工确认
52
+ - 人工签署格式:`[Human-Audit: APPROVED]` 或 `[Human-Audit: REJECTED]`
53
+ - 未获签署的 GRAY/BLACK 变更不得标记为「验证通过」
48
54
 
49
- ## 何时使用
55
+ ## 抽检机制
50
56
 
51
- advisory: 开发者主权的审查建议不 hard block 交付
57
+ - 系统随机抽检人类审计真实性:基于任务摘要生成是/否问题
58
+ - 抽检频率:每 5 次交付至少抽检 1 次
59
+ - 抽检问题格式:`任务 {task_id} 的变更中,{摘要细节} 是否为 [是/否]?`
60
+ - 人类答错时标记该交付为「待重新审计」
52
61
 
53
- ## 是否 hard block
62
+ ## 敏感操作必须停下确认
54
63
 
55
- 否。此能力为 advisory 状态,违规仅产生 advisory 警告,不阻断流程。
64
+ 涉及以下时必须停下等用户确认,不得自作主张:
65
+ - 金额算法 / 状态流转 / 审批规则 / 跨系统同步
66
+ - 破坏性操作(删数据、改 schema、清表、删文件)
67
+ - 外部副作用(发请求、部署、付款、发通知)
68
+ - 权限变更、密钥操作
56
69
 
57
- ## 证据要求
70
+ ## 与其他规则的关系
58
71
 
59
- - preDeliveryReview 测试通过
60
- - veto 逻辑测试通过
61
- -
62
-
63
- ## 人工确认/降级边界
64
-
65
- - 此能力可被开发者决策覆盖
66
- - 升级到 enforced 需满足 promotion_conditions 并通过 lifecycle_test_files 测试
67
- - 降级/禁用需经 治理运行时 + 人工确认
72
+ 证据冲突时的处理见 [[证据驱动与反幻觉]]。门禁失败的人工介入见 [[反馈修复闭环]]。
@@ -0,0 +1,67 @@
1
+ ---
2
+ id: ka-knowledge-机制说明
3
+ kind: knowledge
4
+ title: 机制说明
5
+ sync_policy: copy_to_project
6
+ status: active
7
+ triggers:
8
+ - 机制
9
+ - 门禁
10
+ - gate
11
+ - artifact
12
+ - guidance
13
+ - 注入
14
+ - sf_work
15
+ - sf_knowledge
16
+ - 工具
17
+ - 阶段
18
+ extra:
19
+ name: mechanism-reference
20
+ scope:
21
+ - '*'
22
+ products:
23
+ - '*'
24
+ type: knowledge
25
+ lifecycle_status: active
26
+ version: 1.0.0
27
+ last_reviewed: '2026-06-17'
28
+ verification_layer: L2
29
+ stage: _global
30
+ owner_mechanism: mc-engine-runtime
31
+ ---
32
+
33
+ # SoloForge 机制说明
34
+
35
+ > 供查阅:SoloForge 怎么把知识/门禁/反馈给到 AI。
36
+ > 运行时核心用法已散在各 guidance([[工程执行总纲]]/[[反馈修复闭环]] 等)。
37
+ > 注意:knowledge 类**不注入运行时 prompt**,只供 sf_knowledge 搜索查阅。
38
+
39
+ ## 四类资产怎么被消费
40
+
41
+ | kind | 怎么被消费 | 触发条件 |
42
+ |------|-----------|---------|
43
+ | artifact | AI 按模板骨架产出对应文档 | 用户选 target(产物 kind)时必注入 |
44
+ | guidance | 按 triggers 关键词匹配,全文注入 prompt | intent 含 triggers 或 target_artifact 匹配 |
45
+ | enforced | 按 check.gate 聚合成门禁,确定性 executor 执行 | 该域 verify 时执行 |
46
+ | knowledge | sf_knowledge 索引搜索 | **不注入运行时 prompt**,仅搜索查阅 |
47
+
48
+ ## 四阶段流转
49
+
50
+ `design`(需求+设计)→ `build`(实现)→ `verify`(测试)→ `operate`(运维)
51
+
52
+ - 跳转受白名单约束(正向 design→build→verify→operate,合法回退 build→design 等)
53
+ - 跨两级非法(如 operate→design 被拒)
54
+ - 同对域来回打转 >3 次 → escalate
55
+
56
+ ## 门禁与反馈闭环
57
+
58
+ - 每域一个 `*-gate`,由该域 enforced.md 的 checks 聚合
59
+ - verify 失败 → 生成 findings + recovery_summary → 注入回 AI → 修后重验 → 重试 5 次 escalate
60
+ - 修复流程详见 [[反馈修复闭环]]
61
+
62
+ ## 当前限制(线 B 待办)
63
+
64
+ 用户自定义资产目前:
65
+ - sf_knowledge add 的知识 → 可被索引搜索 ✓
66
+ - 用户放的 enforced/guidance → **暂不进门禁/注入** ✗(下一步线 B 打通扫描范围)
67
+ - domain contract 的产物清单 → **不可由用户扩展** ✗(TS 硬编码)
@@ -0,0 +1,54 @@
1
+ ---
2
+ id: ka-artifact_template-研讨记录
3
+ kind: artifact
4
+ title: 研讨记录
5
+ sync_policy: engine_only
6
+ status: active
7
+ extra:
8
+ name: deliberation-record
9
+ scope:
10
+ - '*'
11
+ products:
12
+ - '*'
13
+ lifecycle_status: active
14
+ version: 1.0.0
15
+ type: artifact_template
16
+ owner_mechanism: mc-generic-artifact
17
+ ---
18
+
19
+ # 研讨记录
20
+
21
+ > **用途**:对话框交互式研讨后的**总结留痕**(研讨本身在对话框与用户进行,本文件是对话收敛后 AI 写的总结,不是研讨过程)。
22
+ > **下游**:`act` 产出实际产物时承接本研讨结论;cross-artifact 对抗审查复核"研讨充分性"。
23
+
24
+ ## 1. 疑问点扫描
25
+
26
+ 逐点列出本产物的关键决策点(技术选型 / 边界假设 / 信息缺口 / 接口契约 / 异常处理 / 性能与安全取舍…),标记【有疑问】/【无疑问】:
27
+
28
+ - [决策点 1] — 【有疑问】/【无疑问】
29
+ - [决策点 2] — 【有疑问】/【无疑问】
30
+
31
+ ## 2. 有疑问的点(完整四步法)
32
+
33
+ 对每个【有疑问】的点:
34
+
35
+ ### [点名称]
36
+
37
+ 1. **不确定点**:到底不确定什么(信息缺口?多个候选?边界未定?假设未验证?)
38
+ 2. **头脑风暴发散**:列出所有可能方案,暂不评判(数量优先,禁止过早否定)
39
+ - 方案 A:…
40
+ - 方案 B:…
41
+ 3. **第一性原理收敛**:回到根本约束(用户根本需求 / 物理与成本 / 已有架构 / 可证伪事实),从公理推导,淘汰经不起追问的方案
42
+ 4. **收敛结论 + 决策依据**:选定方案 + 为什么(必须可证伪,对抗审查会复核)
43
+
44
+ ## 3. 第一性原理淘汰过程
45
+
46
+ 汇总各疑问点的候选方案如何被根本约束淘汰,保留最终选择(可追溯):
47
+
48
+ - [点]:方案 A 被淘汰因为…;方案 B 胜出因为…
49
+
50
+ ## 4. 收敛结论 + 无疑问点举证
51
+
52
+ - **关键决策**:基于研讨的最终选择(承接进实际产物)
53
+ - **无疑问点举证**(不得空泛,复杂决策必须有依据):
54
+ - `[点] 已确认无疑问 — 依据:…`