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
@@ -1,10 +1,23 @@
1
1
  ---
2
- id: ka-hard-rule-证据驱动与反幻觉规则
2
+ id: ka-guidance-证据驱动与反幻觉
3
3
  kind: guidance
4
4
  title: 证据驱动与反幻觉
5
- owner_mechanism: mc-evidence-grounding
6
5
  sync_policy: copy_to_project
7
6
  status: active
7
+ triggers:
8
+ - 架构选型
9
+ - 技术决策
10
+ - 代码重构
11
+ - 方案评估
12
+ - 风险评估
13
+ - 事实核查
14
+ - 证据验证
15
+ - 验证
16
+ - 测试
17
+ - 发布
18
+ - 完成
19
+ - 通过
20
+ - 确认
8
21
  extra:
9
22
  name: evidence-driven-anti-hallucination
10
23
  scope:
@@ -13,21 +26,14 @@ extra:
13
26
  - '*'
14
27
  type: constraint
15
28
  lifecycle_status: active
16
- version: 1.1.0
17
- last_reviewed: '2026-06-01'
29
+ version: 2.0.0
30
+ last_reviewed: '2026-06-17'
18
31
  verification_layer: L2
19
32
  stage: _global
20
- triggers:
21
- - 架构选型
22
- - 技术决策
23
- - 代码重构
24
- - 方案评估
25
- - 风险评估
26
- - 事实核查
27
- - 证据验证
33
+ owner_mechanism: mc-evidence-grounding
28
34
  ---
29
35
 
30
- # 证据驱动与反幻觉规则
36
+ # 证据驱动与反幻觉
31
37
 
32
38
  ## 硬规则
33
39
 
@@ -44,10 +50,10 @@ triggers:
44
50
 
45
51
  ## 风险分级
46
52
 
47
- - **critical**: 发布门禁、生产环境、安全相关 → 任何证据缺失必须阻断
48
- - **high**: 架构、编码、迁移、验证 → 事实声明必须有权威证据
49
- - **medium**: 普通功能开发 → 关键声明需要证据
50
- - **low**: 通用问答、低风险操作 → 可标注为通用建议
53
+ - **critical**:发布门禁、生产环境、安全相关 → 任何证据缺失必须阻断
54
+ - **high**:架构、编码、迁移、验证 → 事实声明必须有权威证据
55
+ - **medium**:普通功能开发 → 关键声明需要证据
56
+ - **low**:通用问答、低风险操作 → 可标注为通用建议
51
57
 
52
58
  ## 检查项
53
59
 
@@ -58,3 +64,7 @@ triggers:
58
64
  - [ ] 高风险声明未用 stale/deprecated 证据
59
65
  - [ ] 验证结论基于真实执行结果
60
66
  - [ ] 生成的推理未单独支撑事实
67
+
68
+ ## 与其他规则的关系
69
+
70
+ 验证失败的修复流程见 [[反馈修复闭环]]。技术决策的确认要求见 [[开发者宪法]]。
@@ -0,0 +1,78 @@
1
+ ---
2
+ id: ka-knowledge-贡献规范
3
+ kind: knowledge
4
+ title: 模板贡献规范
5
+ sync_policy: copy_to_project
6
+ status: active
7
+ triggers:
8
+ - 贡献
9
+ - 新增模板
10
+ - frontmatter
11
+ - 新增规则
12
+ - 新增知识
13
+ - 软下限
14
+ - 硬下限
15
+ extra:
16
+ name: contribution-guide
17
+ scope:
18
+ - '*'
19
+ products:
20
+ - '*'
21
+ type: knowledge
22
+ lifecycle_status: active
23
+ version: 1.0.0
24
+ last_reviewed: '2026-06-17'
25
+ verification_layer: L2
26
+ stage: _global
27
+ owner_mechanism: mc-registry-infrastructure
28
+ ---
29
+
30
+ # 模板贡献规范
31
+
32
+ > 给未来维护者(含 AI 维护者):怎么新增/修改 md 资产。
33
+ > SoloForge 由 AI 维护,必须简单、数据驱动、配置扩展。参见 [[机制说明]]。
34
+
35
+ ## frontmatter 必填四件套
36
+
37
+ 每个 md 必须有:
38
+ - `id`(全局唯一)
39
+ - `kind`(artifact / guidance / enforced / knowledge)
40
+ - `sync_policy`(copy_to_project / engine_only / internal)
41
+ - `status`(active / retired)
42
+
43
+ ## 选 kind 的判断
44
+
45
+ | 想达到的效果 | 用什么 kind | 关键要求 |
46
+ |-------------|------------|---------|
47
+ | AI 产出某个文档的骨架 | artifact | 放对应域目录 |
48
+ | 注入 AI prompt 的方法论/纪律 | guidance | **必须有非空 triggers,否则永不注入=僵尸** |
49
+ | 确定性门禁检查 | enforced | **必须有 gate + 非空 checks** |
50
+ | 只供搜索查阅的参考 | knowledge | 注意:**不注入运行时 prompt** |
51
+
52
+ ## 软下限 vs 硬下限
53
+
54
+ - **软下限 = guidance**:注入指导,不阻断。靠 triggers 匹配 intent 注入。
55
+ - **硬下限 = enforced**:门禁检查,阻断。靠 check.gate 聚合到 *-gate 执行。
56
+
57
+ 新增硬下限注意:
58
+ - check 的 `executor` 必须是已注册的(`regex_pattern_scan` / `document_structure` / `semantic`)
59
+ - 未注册 executor → fail-closed 判失败
60
+ - `regex_pattern_scan` 按行扫、不区分注释,容易误报,先想好是否该 warning 级
61
+
62
+ ## 避坑清单
63
+
64
+ - guidance 没 triggers = 僵尸文件
65
+ - enforced 没 gate/checks = 僵尸文件
66
+ - knowledge 写成核心纪律 = 白写(不注入),核心纪律用 guidance
67
+ - 不要造同义字段,新增字段先查 frontmatter 字段字典
68
+ - artifact 改名要同步 domain contract 的 produces 和 CROSS_VALIDATION_ARTIFACT_PATHS 映射
69
+
70
+ ## 用户自定义资产(线B 已落地)
71
+
72
+ 用户在 `.soloforge/knowledge/`(项目级)或 `~/.soloforge/patterns/`(全局级)放 md(frontmatter 同内置格式),SoloForge 自动按 kind 分流:
73
+ - `kind: guidance` → loadGuidance 注入 prompt(软下限,按 triggers 匹配 intent)
74
+ - `kind: enforced` → gate 聚合执行(硬下限,按 `check.gate` 归属到对应 *-gate)
75
+ - `kind: knowledge` → sf_knowledge 索引搜索
76
+ - `kind: artifact` → 用户 artifact md 用 `artifact_contract` 块声明 `domain`/`artifact_kind`/`path_pattern`/`gate`/`required`,自动并入对应域 contract produces(AI 可选 target 产出,observer 列 pending);模板按文件名在 .soloforge/knowledge/ 加载
77
+
78
+ **内置优先**:同 id 用户资产不覆盖内置。规则文件 `rule_source` 用绝对路径定位(executor resolve 兼容用户目录)。
@@ -5,117 +5,19 @@ gate: verify-gate
5
5
  title: verify阶段强制检查清单
6
6
  sync_policy: engine_only
7
7
  status: active
8
+ extra:
9
+ owner_mechanism: mc-stage-gate-engine
8
10
  checks:
9
11
  - id: SOLID-DIP
10
12
  executor: regex_pattern_scan
11
- rule: "禁止直接构造依赖(new Service/Repository/Dao),必须依赖注入"
13
+ rule: "禁止直接构造依赖(new Service/Repository/Dao),必须依赖注入(Java/Spring;TS 无 DI 容器不适用)"
12
14
  severity: error
13
15
  check_type: deterministic
14
16
  pattern: '/\bnew\s+\w*(Service|Repository|Repo|Dao|Mapper|Manager)\s*\(/'
15
- languages: [通用]
17
+ languages: [java]
16
18
  evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无直接构造依赖命中)"]
17
19
  gate: verify-gate
18
20
  target: "self"
19
- - id: CON-01
20
- executor: regex_pattern_scan
21
- rule: "共享可变状态必须有并发保护"
22
- severity: error
23
- check_type: deterministic
24
- pattern: '/\b(public|private|protected)\s+static\s+[\w<>,\s]*\b(HashMap|ArrayList|HashSet|LinkedList)\b/'
25
- languages: [java]
26
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无未保护共享状态命中)"]
27
- gate: build-gate
28
- target: "self"
29
- - id: CON-02
30
- executor: regex_pattern_scan
31
- rule: "分布式环境禁止使用 JVM 级锁"
32
- severity: error
33
- check_type: deterministic
34
- pattern: '/\bsynchronized\s*\(/'
35
- languages: [java]
36
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无 JVM 级锁误用命中)"]
37
- gate: build-gate
38
- target: "self"
39
- - id: CON-03
40
- executor: regex_pattern_scan
41
- rule: "先查后改(如库存/计数)必须用原子操作"
42
- severity: error
43
- check_type: deterministic
44
- pattern: '/\.(findById|getById|getOne|selectById)\s*\([^)]*\)/'
45
- languages: [java]
46
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无非原子先查后改命中)"]
47
- gate: build-gate
48
- target: "self"
49
- - id: CON-04
50
- executor: regex_pattern_scan
51
- rule: "禁止 @Transactional 同类内部调用导致事务失效"
52
- severity: error
53
- check_type: deterministic
54
- pattern: '/\bthis\.\w+\s*\(/'
55
- languages: [java]
56
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无事务自调用命中)"]
57
- gate: build-gate
58
- target: "self"
59
- - id: CON-05
60
- executor: regex_pattern_scan
61
- rule: "事务内禁止执行外部调用(HTTP/RPC)"
62
- severity: error
63
- check_type: deterministic
64
- pattern: '/\.(getForObject|postForObject|exchange|execute)\s*\(/'
65
- languages: [java]
66
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无事务内外部调用命中)"]
67
- gate: build-gate
68
- target: "self"
69
- - id: CON-06
70
- executor: regex_pattern_scan
71
- rule: "SimpleDateFormat 非线程安全,禁止作为共享成员"
72
- severity: error
73
- check_type: deterministic
74
- pattern: '/\bstatic\s+[\w<>,\s]*SimpleDateFormat\b/'
75
- languages: [java]
76
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无 SimpleDateFormat 共享命中)"]
77
- gate: build-gate
78
- target: "self"
79
- - id: CON-07
80
- executor: regex_pattern_scan
81
- rule: "ThreadLocal 必须清理避免内存泄漏"
82
- severity: error
83
- check_type: deterministic
84
- pattern: '/\bnew\s+ThreadLocal\b/'
85
- languages: [java]
86
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无 ThreadLocal 未清理命中)"]
87
- gate: build-gate
88
- target: "self"
89
- - id: CON-08
90
- executor: regex_pattern_scan
91
- rule: "HashMap/ArrayList 等禁止作为共享可变类成员"
92
- severity: error
93
- check_type: deterministic
94
- pattern: '/\b(private|protected|public)\s+(?!static)[\w<>,\s]*\b(HashMap|ArrayList|HashSet|LinkedList)\s*[=;]/'
95
- languages: [java]
96
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无非线程安全集合成员命中)"]
97
- gate: build-gate
98
- target: "self"
99
- - id: CON-09
100
- executor: regex_pattern_scan
101
- rule: "CompletableFuture 链必须处理异常"
102
- severity: error
103
- check_type: deterministic
104
- pattern: '/\.(runAsync|supplyAsync)\s*\(/'
105
- languages: [java]
106
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无未处理异常命中)"]
107
- gate: build-gate
108
- target: "self"
109
- - id: CON-10
110
- executor: regex_pattern_scan
111
- rule: "线程池必须正确配置拒绝策略"
112
- severity: error
113
- check_type: deterministic
114
- pattern: '/\bnew\s+ThreadPoolExecutor\s*\(/'
115
- languages: [java]
116
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无未配置拒绝策略命中)"]
117
- gate: build-gate
118
- target: "self"
119
21
  - id: PER-01
120
22
  executor: regex_pattern_scan
121
23
  rule: "禁止循环内逐条数据库调用(N+1 问题)"
@@ -206,114 +108,15 @@ checks:
206
108
  evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无未优化图片命中)"]
207
109
  gate: verify-gate
208
110
  target: "self"
209
- - id: API-01
210
- executor: regex_pattern_scan
211
- rule: "Controller 禁止返回 Entity,必须返回 DTO"
111
+ - id: REVIEW-STRUCT
112
+ executor: document_structure
113
+ rule: "代码审查报告须含「审查信息」「维度覆盖矩阵」「发现项」「审查清单校验」「完成判定」章节"
212
114
  severity: error
213
115
  check_type: deterministic
214
- pattern: '/\bpublic\s+\w*Entity\b\s+\w+\s*\(/'
215
- languages: [java]
216
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无 Entity 直接返回命中)"]
217
- gate: build-gate
218
- target: "self"
219
- - id: API-02
220
- executor: regex_pattern_scan
221
- rule: "写操作(POST/PUT/DELETE)必须有 @Transactional"
222
- severity: error
223
- check_type: deterministic
224
- pattern: '/\.(save|insert|update|delete|remove)\s*\(/'
225
- languages: [java]
226
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无写操作缺事务命中)"]
227
- gate: build-gate
228
- target: "self"
229
- - id: API-03
230
- executor: regex_pattern_scan
231
- rule: "接口必须有权限注解"
232
- severity: error
233
- check_type: deterministic
234
- pattern: '/@(Get|Post|Put|Delete|Request)Mapping\s*\(/'
235
- languages: [java]
236
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无接口缺权限注解命中)"]
237
- gate: build-gate
238
- target: "self"
239
- - id: API-04
240
- executor: regex_pattern_scan
241
- rule: "禁止硬编码分页参数,必须参数化"
242
- severity: error
243
- check_type: deterministic
244
- pattern: '/\b(pageNum|pageSize)\s*=\s*\d/'
245
- languages: [java]
246
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无硬编码分页命中)"]
247
- gate: build-gate
248
- target: "self"
249
- - id: API-05
250
- executor: regex_pattern_scan
251
- rule: "请求参数必须有 @Valid/@RequestBody 等校验注解"
252
- severity: error
253
- check_type: deterministic
254
- pattern: '/@RequestBody\b/'
255
- languages: [java]
256
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无缺参数校验命中)"]
257
- gate: build-gate
258
- target: "self"
259
- - id: API-06
260
- executor: regex_pattern_scan
261
- rule: "接口路径须符合 RESTful 规范"
262
- severity: error
263
- check_type: deterministic
264
- pattern: '/@(Get|Post|Put|Delete)Mapping\s*\(\s*[^\)]*(get|list|create|delete|update)/i'
265
- languages: [java]
266
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无路径违规命中)"]
267
- gate: build-gate
268
- target: "self"
269
- - id: API-07
270
- executor: regex_pattern_scan
271
- rule: "接口必须使用统一响应包装(ApiResult/Result/R)"
272
- severity: error
273
- check_type: deterministic
274
- pattern: '/\bResponseEntity\s*<\s*\w*Entity\b/'
275
- languages: [java]
276
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无裸返回命中)"]
277
- gate: build-gate
278
- target: "self"
279
- - id: API-08
280
- executor: regex_pattern_scan
281
- rule: "分页接口必须返回标准分页结构"
282
- severity: error
283
- check_type: deterministic
284
- pattern: '/\.(findAll|listAll)\s*\(\s*\d/'
285
- languages: [java]
286
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无非标准分页命中)"]
287
- gate: build-gate
288
- target: "self"
289
- - id: API-09
290
- executor: regex_pattern_scan
291
- rule: "接口路径须含版本号"
292
- severity: error
293
- check_type: deterministic
294
- pattern: '/@(Get|Post|Put|Delete|Request)Mapping\s*\(\s*"\/(?!api\/v\d)/i'
295
- languages: [java]
296
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无缺版本号命中)"]
297
- gate: build-gate
298
- target: "self"
299
- - id: API-10
300
- executor: regex_pattern_scan
301
- rule: "接口必须有 Swagger/OpenAPI 文档注解"
302
- severity: error
303
- check_type: deterministic
304
- pattern: '/@(Get|Post|Put|Delete)Mapping\s*\([^)]*\)[\s\S]{0,200}(?!.*@ApiOperation)/'
305
- languages: [java]
306
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无缺文档注解命中)"]
307
- gate: build-gate
308
- target: "self"
309
- - id: VRF-G02
310
- executor: semantic
311
- rule: "所有信任分级为黑盒的审查项必须有人类签署确认(人工签署判断,不可代码确定性判定)"
312
- severity: info
313
- check_type: semantic
314
- evidence_required: ["LLM/人工语义评估结论(pending 标记,advisory 不阻断,随 Reflexion 反馈供客户端 AI 评判)"]
116
+ required_artifact: 代码审查报告模版
117
+ evidence_required: ["docs/audits/02-代码审查报告.md"]
315
118
  gate: verify-gate
316
- target: "self"
119
+ target: self
317
120
  - id: VRF-G03
318
121
  executor: vitest_run
319
122
  rule: "端到端核心业务流程验证必须全部通过,证据级别至少 E1(运行时证据)"
@@ -332,95 +135,116 @@ checks:
332
135
  target: "self"
333
136
  - id: VRF-G05
334
137
  executor: file_evidence
335
- rule: "验收场景覆盖正常路径、边界条件和异常路径,证据含截图或日志,三类均有 >=1 条证据"
336
- severity: error
138
+ rule: "产出验收证据文件(file_evidence 验证存在+非空);正常/边界/异常三类覆盖须人工确认(每类≥1条)"
139
+ severity: warning
337
140
  check_type: deterministic
338
141
  evidence_required: ["正常路径验收证据","边界条件验收证据","异常路径验收证据","场景覆盖统计(3 类均有 >=1 条证据)"]
339
142
  gate: verify-gate
340
143
  target: "self"
341
144
  - id: VRF-G06
342
145
  executor: report_structure
343
- rule: "主链路集成检查:所有模块为 integrated 状态,无孤岛模块;部署决策必须经人类审批"
146
+ rule: "代码审查报告结构完整非空壳(report_structure 验证≥200字+≥2章节);integrated 无孤岛 + 部署审批须人工确认"
344
147
  severity: error
345
148
  check_type: deterministic
149
+ required_artifact: 代码审查报告模版
346
150
  evidence_required: ["0 implemented_not_integrated + 无孤岛模块","人类审批记录(审批人/时间/决策)"]
347
151
  gate: verify-gate
348
152
  target: "self"
349
153
  - id: ARC-09
350
154
  executor: external_command
155
+ command: grep
156
+ args: ["-rl", "--include=*.java", "@RestControllerAdvice", "src/"]
351
157
  rule: "项目须配置全局异常处理器;grep 项目级存在性,找到(@RestControllerAdvice/@ControllerAdvice)=exitCode 0 通过,缺失=exitCode 1 失败"
352
158
  severity: warning
353
159
  check_type: deterministic
354
160
  evidence_required: ["external_command 结果(项目存在全局异常处理器 = exitCode 0 通过)"]
355
161
  gate: verify-gate
356
162
  target: "self"
357
- - id: ARC-05
358
- executor: external_command
359
- rule: "单个前端组件文件超过 300 行应拆分;eslint max-lines 检测,超长=exitCode 非0。引用 rules/架构审查.md ARC-05"
163
+ # —— ARCH-DEP 已删(假覆盖:external_command 缺 command → dependency-cruiser 从未真跑、永远 fail-closed)。
164
+ # 分层依赖 / 组件行数非确定性(需 AST / 项目特定规则 / 跨语言工具 dependency-cruiser·ArchUnit),
165
+ # 降级软下限《架构语义红线》+ AI/人工审查。ARC-05(组件<300行)幽灵 check 引用同步清除 ——
166
+ - id: XVAL-REVIEW-REQ
167
+ executor: cross_validation
168
+ rule: "REQ-* 一致性"
169
+ severity: warning
170
+ check_type: deterministic
171
+ required_artifact: 代码审查报告模版
172
+ evidence_required: ["需求分析模版"]
173
+ gate: verify-gate
174
+ target: "self"
175
+ - id: XVAL-REVIEW-API
176
+ executor: cross_validation
177
+ rule: "DD-A* 一致性"
178
+ severity: warning
179
+ check_type: deterministic
180
+ required_artifact: 代码审查报告模版
181
+ evidence_required: ["API接口规格文档模版"]
182
+ gate: verify-gate
183
+ target: "self"
184
+ - id: XVAL-REVIEW-DB
185
+ executor: cross_validation
186
+ rule: "DD-T* 一致性"
360
187
  severity: warning
361
188
  check_type: deterministic
362
- evidence_required: ["external_command 结果(eslint max-lines 报告,超 300 行组件 = exitCode 非0)"]
189
+ required_artifact: 代码审查报告模版
190
+ evidence_required: ["数据库设计文档模版"]
363
191
  gate: verify-gate
364
192
  target: "self"
365
- - id: ARCH-DEP
193
+ # —— 前端承接一致性(XVAL-REVIEW-FE:审查报告引用的 FE-* 须与架构 §6.3 一致;纯后端双方无 FE-* warning 可忽略)——
194
+ - id: XVAL-REVIEW-FE
195
+ executor: cross_validation
196
+ rule: "FE-* 一致性"
197
+ severity: warning
198
+ check_type: deterministic
199
+ required_artifact: 代码审查报告模版
200
+ evidence_required: ["架构设计模版"]
201
+ gate: verify-gate
202
+ target: "self"
203
+ # —— 附件校验(openapi.yaml,redocly lint)——
204
+ - id: OPENAPI-LINT
366
205
  executor: external_command
367
- rule: "模块依赖须遵循分层方向、无循环依赖、表现层不得直接访问数据层;dependency-cruiser 检测,违规=exitCode 非0。覆盖 rules/架构设计.md ARCH-DEP-01/02/03"
206
+ command: npx
207
+ args: ["@redocly/cli", "lint", "--config", "redocly.yaml", "docs/api/openapi.yaml"]
208
+ rule: "openapi.yaml 须通过 redocly lint --config redocly.yaml(SoloForge 锁定规则;YAML 语法+OpenAPI 规范)"
368
209
  severity: warning
369
210
  check_type: deterministic
370
- evidence_required: ["external_command 结果(dependency-cruiser 报告,依赖违规 = exitCode 0"]
211
+ evidence_required: ["redocly lint 输出(exitCode 0 通过)"]
371
212
  gate: verify-gate
372
213
  target: "self"
373
- - id: ARCH-C-REVIEW
374
- executor: semantic
375
- rule: "客户端 AI 评判架构语义红线(不可代码确定性判定,需结合业务上下文人工/AI 评估):① 禁止 Patch JAR/docker commit/运行时文件替换交付代码 ② 禁止前端/Controller/定时任务跨服务边界直接访问持久化实现 ③ 禁止绕过统一认证与数据范围控制暴露业务接口 ④ 新增写操作须有可追溯审计记录 ⑤ 异步消息/定时任务/补偿逻辑须幂等 ⑥ 模块边界单一职责无过度耦合(ARCH-R04)⑦ NFR 目标值可测量(ARCH-R07)⑧ 部署方案环境规划/CI-CD 完整(ARCH-R09)⑨ 风险登记覆盖度充分(ARCH-R10)"
376
- severity: info
377
- check_type: semantic
378
- evidence_required: ["LLM 语义评估结论(pending 标记,advisory 不阻断,随 Reflexion 反馈供客户端 AI 评判/重试)"]
214
+ # —— 字段映射复审(数据库 §3/§7 ↔ schema.sql,verify 域复审一致)——
215
+ - id: FMAP-REVIEW
216
+ executor: field_mapping_validation
217
+ rule: "表.字段 一致性+覆盖率"
218
+ severity: warning
219
+ check_type: deterministic
220
+ required_artifact: 数据库设计文档模版
221
+ evidence_required: ["docs/design/schema.sql"]
222
+ gate: verify-gate
223
+ target: "self"
224
+ - id: CODEREVIEW-BLOCK
225
+ executor: document_structure
226
+ check_type: deterministic
227
+ severity: error
379
228
  gate: verify-gate
229
+ required_artifact: 代码审查报告模版
230
+ rule: "审查维度矩阵/发现项章节须有表格行(反退化:禁只列前几条后省略/其余见附件)"
231
+ block_check:
232
+ item_pattern: '^##\s+(2|3)\.'
233
+ require_table: true
234
+ min_table_rows: 1
235
+ evidence_required: ["代码审查报告模版"]
380
236
  target: "self"
381
237
  ---
382
238
 
383
239
  # verify-gate 强制检查清单
384
240
 
385
- 39 条确定性检查。bridge 从此文件聚合。
241
+ 23 条确定性检查(ARCH-DEP 已删:external_command 缺 command → dependency-cruiser 从未真跑,降级软下限;ARC-05 幽灵引用已清)。bridge 按 check.gate 聚合(CON-*/API-* 并发与 API 规范已归位 build/enforced.md——gate 本就是 build-gate;API-01/02 与 build ARC-02/03 重复已删;VRF-G02/ARCH-C-REVIEW semantic advisory 移至 guidance《架构语义红线》)。
386
242
 
387
243
  对应工程经验:
388
- - SOLID-DIP
389
- - CON-01
390
- - CON-02
391
- - CON-03
392
- - CON-04
393
- - CON-05
394
- - CON-06
395
- - CON-07
396
- - CON-08
397
- - CON-09
398
- - CON-10
399
- - PER-01
400
- - PER-02
401
- - PER-03
402
- - PER-04
403
- - PER-05
404
- - PER-06
405
- - PER-07
406
- - PER-08
407
- - PER-09
408
- - API-01
409
- - API-02
410
- - API-03
411
- - API-04
412
- - API-05
413
- - API-06
414
- - API-07
415
- - API-08
416
- - API-09
417
- - API-10
418
- - VRF-G02
419
- - VRF-G03
420
- - VRF-G04
421
- - VRF-G05
422
- - VRF-G06
423
- - ARC-09
424
- - ARC-05
425
- - ARCH-DEP
426
- - ARCH-C-REVIEW
244
+ - SOLID-DIP(依赖注入,Java/Spring;TS 无 DI 容器不适用)
245
+ - PER-01~09(性能:N+1/SELECT */分页/循环/重渲染/useMemo/连接池/大事务/图片)
246
+ - VRF-G03(vitest E1+)/ VRF-G04(tsc)/ VRF-G05(验收三类覆盖)/ VRF-G06(主链路无孤岛+部署审批)
247
+ - ARC-09(全局异常处理器,grep 项目级存在性)
248
+ - XVAL-REVIEW-REQ/API/DB/FE(审查报告↔需求/API/DB/前端 一致性)
249
+ - OPENAPI-LINT / FMAP-REVIEW
250
+ - 分层依赖 / 组件行数:非确定性(需 AST/项目规则/跨语言工具),归软下限《架构语义红线》+ AI/人工审查