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,5 +1,5 @@
1
1
  ---
2
- id: ka-review-rule-交付完备性审查规则
2
+ id: ka-guidance-交付完备性审查
3
3
  kind: guidance
4
4
  title: 交付完备性审查
5
5
  sync_policy: copy_to_project
@@ -9,109 +9,68 @@ triggers:
9
9
  - review
10
10
  - 交付检查
11
11
  - 上线前检查
12
- - 提交检查
12
+ - 提测
13
+ - 交付完备
13
14
  - 终局宣言
15
+ - 完成检查
16
+ - 交付
17
+ target_artifact:
18
+ - review_report
14
19
  extra:
15
20
  name: delivery-completeness
16
- type: constraint
17
21
  scope:
18
- - backend
19
- - frontend
22
+ - '*'
20
23
  products:
21
24
  - '*'
25
+ type: constraint
22
26
  lifecycle_status: active
23
- version: 1.2.0
24
- last_reviewed: '2026-06-04'
25
- domain: verify
27
+ version: 2.0.0
28
+ last_reviewed: '2026-06-17'
26
29
  verification_layer: L2
27
30
  stage: verify
31
+ domain: verify
28
32
  owner_mechanism: mc-generic-review
29
33
  ---
30
34
 
31
- ## DEL-01: 交付物缺少终局宣言签名
32
- pattern: /SoloForge Audit: PASS/
33
- severity: error
34
- check_type: deterministic
35
- scope: [backend, frontend]
36
- description: 所有交付物末尾必须包含 [SoloForge Audit: PASS - 已通过三重深度推演,确认无潜在隐患]。缺少此签名的交付视为无效
37
- evidence_required:
38
- - "交付物文件路径"
39
- - "终局宣言签名存在确认"
35
+ # 交付完备性审查:交付前必查清单
36
+
37
+ > 这是"最小交付偏差 + 逼证据"的总裁决。交付前逐项核对,缺一不算交付完成。
38
+ > 注入到代码审查报告(review_report)产出时。
39
+
40
+ ## 一、最小偏差(交付 = 需求)
41
+
42
+ - [ ] 每条需求 REQ 有对应实现,且实现行为符合需求
43
+ - [ ] 交付内容不超出需求范围(无多余功能,[[工程执行总纲]] 精准修改)
44
+ - [ ] 根本目标(fundamental_need)已达成,非只完成表面功能
45
+ - [ ] **前端**(涉及 FE-* 时):交付的端覆盖需求 §9 声明的所有端,每个 FE-* 端骨架完整(路由/状态/API service 壳/认证拦截器),无前端孤岛
46
+
47
+ ## 二、证据充分(逼证据)
48
+
49
+ - [ ] 验证基于真实执行(E1+ 运行时证据),非静态分析/AI 摘要([[证据驱动与反幻觉]] 第 5 条)
50
+ - [ ] 验收覆盖正常/异常/边界/权限四类(适用时含并发)
51
+ - [ ] 测试全绿,增量覆盖率达标
52
+ - [ ] 无"未验证项"被假装通过
40
53
 
41
- ## DEL-02: 验收项缺少边界值覆盖
42
- pattern: //
43
- severity: warning
44
- check_type: deterministic
45
- scope: [backend, frontend]
46
- description: 验收项应覆盖空值(null/undefined)、极端值(MAX_VALUE/空字符串)、异常输入场景,而非仅 happy path
47
- evidence_required:
48
- - "验收项列表"
49
- - "边界值覆盖统计"
54
+ ## 三、无半成品(逼质量)
50
55
 
51
- ## DEL-03: 涉及外部调用但无异常处理验收
52
- pattern: /(?:feign|http|restTemplate|webClient|fetch|axios)\s*\(/i
53
- severity: warning
54
- check_type: deterministic
55
- scope: [backend, frontend]
56
- description: 涉及外部 HTTP 调用的代码必须有超时、异常格式、降级场景的验收覆盖
57
- evidence_required:
58
- - "外部调用点列表"
59
- - "异常处理验收覆盖确认"
56
+ - [ ] 无 TODO 占位、空函数体、空 catch(build-gate BLD-G02)
57
+ - [ ] 无未接入主链路的孤岛代码(VRF-G06)
58
+ - [ ] 错误路径都有处理,非只 happy path
60
59
 
61
- ## DEL-04: 涉及状态变更但无事务/幂等验收
62
- pattern: /(?:@Transactional|save\(|insert\(|update\(|delete\()/i
63
- severity: warning
64
- check_type: deterministic
65
- scope: backend
66
- description: 涉及数据库状态变更的代码必须有事务一致性、幂等性验收覆盖
67
- evidence_required:
68
- - "状态变更操作列表"
69
- - "事务/幂等验收确认"
60
+ ## 四、人工审计(逼安全/质量)
70
61
 
71
- ## DEL-05: 测试断言精度不足(疑似自己证明自己)
72
- pattern: /(?:toBeTruthy|toBeFalsy|toBeDefined|toBeUndefined|toBeDefined)\s*\(/
73
- severity: info
74
- check_type: deterministic
75
- scope: [backend, frontend]
76
- description: 大量使用模糊断言(toBeTruthy等)视为测试有效性风险,必须补充精确断言(toBe/toEqual/toThrow)
77
- evidence_required:
78
- - "模糊断言使用统计"
62
+ - [ ] 黑盒信任级发现项已人类签署 `[Human-Audit: APPROVED]`([[开发者宪法]])
63
+ - [ ] 敏感操作(金额/状态/审批/跨系统)经用户确认
64
+ - [ ] 无静默变更(GRAY/BLACK 级变更未跳过确认)
79
65
 
80
- ## SEL-01: 技术选型无行业基准支撑
81
- pattern: //
82
- severity: error
83
- check_type: deterministic
84
- scope: [backend, frontend]
85
- description: 技术选型必须检索至少 3 个行业标准方案(结合通用知识 + sf_knowledge 项目沉淀)。禁止凭空推荐方案
86
- evidence_required:
87
- - "技术选型记录路径"
88
- - "行业基准检索结果路径"
89
- - "对比方案数(须≥3)"
66
+ ## 五、可回滚(逼安全)
90
67
 
91
- ## SEL-02: 推荐方案未说明致命缺点规避策略
92
- pattern: //
93
- severity: warning
94
- check_type: semantic
95
- scope: [backend, frontend]
96
- description: 最优解宣誓必须明确说明如何规避其他方案的致命缺点。无规避说明视为不完整选型
97
- evidence_required:
98
- - "推荐方案致命缺点列表"
99
- - "规避策略说明"
68
+ - [ ] 有回滚方案(DDL/配置/代码变更可回滚)
69
+ - [ ] 数据迁移有回滚脚本且验证过
100
70
 
101
- ## TRA-01: 审查发现未按信任分级路由
102
- pattern: //
103
- severity: info
104
- check_type: semantic
105
- scope: [backend, frontend]
106
- description: sf_work action=verify 结果应按白盒(可跳过)/灰盒(建议审查)/黑盒(强制审查)三级分类展示,禁止平铺所有发现
107
- evidence_required:
108
- - "信任分级统计(白盒/灰盒/黑盒项数)"
71
+ ## 禁止
109
72
 
110
- ## TRA-02: 审查报告缺少认知透明度标注
111
- pattern: //
112
- severity: info
113
- check_type: semantic
114
- scope: [backend, frontend]
115
- description: 审查结果应标注熔断触发状态、变异检测结果、漂移检测结果,确保人类能看到系统内部决策
116
- evidence_required:
117
- - "认知透明度标注内容"
73
+ - 没验证就说"通过"(违规)
74
+ - 隐藏未验证项(违规)
75
+ - 黑盒项跳过人工签署(违规)
76
+ - 无回滚方案就交付(违规)
@@ -13,8 +13,16 @@ extra:
13
13
  lifecycle_status: active
14
14
  stage: verify
15
15
  owner_mechanism: mc-generic-artifact
16
+ products:
17
+ - '*'
18
+ version: 2.0.0
19
+ last_reviewed: '2026-06-17'
16
20
  ---
17
21
 
22
+ > **产物定位**:verify 阶段必出。代码审查的最终裁决——发现项按严重度分级,黑盒项须人类签署。
23
+ > **核心纪律**:审查 Agent 与编码 Agent 须独立([[证据驱动与反幻觉]]);黑盒项未经 `[Human-Audit: APPROVED]` 不得判通过([[开发者宪法]])。
24
+ > **反退化纪律**:发现项表须逐条填写(维度/严重度/信任分级/文件/描述/建议/来源),禁止只列前几条后省略、禁止用「其余发现见附件」代替;维度覆盖矩阵每个维度都要标注覆盖状态。
25
+
18
26
  # 代码审查报告
19
27
 
20
28
  ## 1. 审查信息
@@ -41,6 +49,7 @@ extra:
41
49
  | 交付完备 | DEL-01~DEL-05, SEL-01~SEL-02, TRA-01~TRA-02 | ✅/❌ | <!-- 数量 --> | |
42
50
  | 决策完整性 | DEC-01~DEC-04 | ✅/❌ | <!-- 数量 --> | **AI 盲区** |
43
51
  | 上游交叉验证 | UCV-REV-01~UCV-REV-04 | ✅/❌ | <!-- 数量 --> | |
52
+ | 前端工程 | FE-SKELETON/FE-CONTRACT/FE-AUTH | ✅/❌ | <!-- 数量 --> | 涉及 FE-* 时:骨架完整/前后端契约一致/前端权限承接(XVAL-REVIEW-FE + 交付完备性审查前端维度) |
44
53
 
45
54
  > **AI 盲区维度标注**:design(设计意图)/ maintainability(可维护性深层)/ documentation(文档完备)——这些维度 AI 审查置信度较低,建议人类重点复核。
46
55
 
@@ -60,3 +69,11 @@ extra:
60
69
  | 检查项 | 通过 |
61
70
  |---|---|
62
71
  | <!-- 检查项 --> | 是/否 |
72
+
73
+ ## 完成判定
74
+
75
+ - [ ] 审查覆盖所有变更文件
76
+ - [ ] 发现项按严重度分级(error/warning/info)
77
+ - [ ] 审查清单全部校验通过
78
+ - [ ] 无未处理的 error 级发现
79
+ - [ ] 发现项表逐条完整填写,维度覆盖矩阵无遗漏维度
@@ -0,0 +1,79 @@
1
+ ---
2
+ id: ka-guidance-审查清单
3
+ kind: guidance
4
+ title: 审查清单
5
+ sync_policy: copy_to_project
6
+ status: active
7
+ triggers:
8
+ - 审查
9
+ - review
10
+ - 代码审查
11
+ - 质量
12
+ - 审查清单
13
+ - 检查清单
14
+ - code review
15
+ target_artifact:
16
+ - review_report
17
+ extra:
18
+ name: review-checklist
19
+ scope:
20
+ - '*'
21
+ products:
22
+ - '*'
23
+ type: constraint
24
+ lifecycle_status: active
25
+ version: 1.0.0
26
+ last_reviewed: '2026-06-17'
27
+ verification_layer: L2
28
+ stage: verify
29
+ domain: verify
30
+ owner_mechanism: mc-generic-review
31
+ ---
32
+
33
+ # 审查清单:代码审查查什么
34
+
35
+ > 合并旧的十几个审查碎拆(SOLID/性能/并发/错误处理/数据隐私/可维护性等)。
36
+ > verify-gate 的 SEC/PER/CON/API 是确定性正则门禁;本清单是审查者的维度指引。
37
+ > 注入到代码审查报告(review_report)产出时。
38
+
39
+ ## 审查维度(每类都要过一遍)
40
+
41
+ ### 正确性
42
+ - 逻辑是否实现需求(对照 REQ)
43
+ - 边界条件:空/null/极值/并发/重复提交
44
+ - 错误路径都有处理
45
+
46
+ ### 安全(对应 build-gate SEC-01~12)
47
+ - 输入校验、SQL 注入、XSS、权限、敏感信息、SSRF、反序列化
48
+ - 详见 [[安全加固]]
49
+
50
+ ### 性能(对应 PER-01~09)
51
+ - N+1 查询、SELECT *、全量返回、循环内建对象、大事务、连接池
52
+ - 前端:不必要重渲染、未记忆化、未优化资源
53
+
54
+ ### 并发(对应 CON-01~10)
55
+ - 共享可变状态保护、JVM 锁误用、先查后改原子性、事务自调用、ThreadLocal 清理
56
+
57
+ ### 架构(对应 ARC-*)
58
+ - 分层依赖、循环依赖、单一职责、Controller 不含业务逻辑
59
+
60
+ ### 接口契约(对应 API-01~10)
61
+ - DTO 不暴露 Entity、写操作事务、权限注解、参数校验、RESTful、统一响应、分页、版本号、文档
62
+
63
+ ### 可维护性(AI 盲区,重点人工复核)
64
+ - 命名清晰、单一职责、注释解释 why、无上帝对象
65
+ - 可观测:关键路径有日志,便于排查
66
+
67
+ ### 数据隐私
68
+ - 敏感数据加密/脱敏、日志不泄露、数据生命周期合规
69
+
70
+ ## 信任分级
71
+
72
+ - **白盒**:AI 可确定性判定(正则/类型/编译)→ 自动通过
73
+ - **灰盒**:AI 可判但需复核 → AI 判 + 标注
74
+ - **黑盒**:需业务/设计判断(设计意图/可维护性深层)→ **必须人类签署**([[开发者宪法]])
75
+
76
+ ## 输出
77
+
78
+ 每个发现项:维度 + 严重度(error/warning/info) + 信任分级 + 文件:行号 + 描述 + 建议。
79
+ 黑盒项未签署不得判通过。
@@ -0,0 +1,60 @@
1
+ ---
2
+ id: ka-guidance-架构语义红线
3
+ kind: guidance
4
+ title: 架构语义红线
5
+ sync_policy: engine_only
6
+ status: active
7
+ triggers:
8
+ - 架构红线
9
+ - 跨服务
10
+ - 跨边界
11
+ - 幂等
12
+ - 审计记录
13
+ - 绕过认证
14
+ - 部署方案
15
+ - 风险登记
16
+ - 黑盒审查
17
+ - 人工确认
18
+ - 人工签署
19
+ extra:
20
+ name: architecture-semantic-redline
21
+ scope:
22
+ - '*'
23
+ products:
24
+ - '*'
25
+ type: constraint
26
+ lifecycle_status: active
27
+ version: 1.0.0
28
+ domain: verify
29
+ owner_mechanism: mc-stage-gate-engine
30
+ ---
31
+
32
+ # 架构语义红线
33
+
34
+ > **来源**:从 verify/enforced.md 的 `ARCH-C-REVIEW`(架构语义红线 9 条)+ `VRF-G02`(黑盒审查须人工确认)拆出。
35
+ > 这些规则**不可代码确定性判定**(需业务上下文 / 人工判断),故归软下限(triggers 注入 + AI/人工评判),不进 gate。确定性架构检查仅 ARC-09(全局异常处理器,grep 项目级存在性);**分层依赖 / 组件行数同样不可代码确定性判定**(需 AST / 项目特定规则 / 跨语言工具 dependency-cruiser·ArchUnit),归本软下限 + AI/人工审查(原 ARCH-DEP enforced 假覆盖已删,ARC-05 幽灵引用已清)。
36
+
37
+ ## 架构语义红线(原 ARCH-C-REVIEW 9 条)
38
+
39
+ 客户端 AI 结合业务上下文评判:
40
+
41
+ 1. **禁止 Patch JAR / docker commit / 运行时文件替换交付代码** —— 交付物须可重建、可追溯
42
+ 2. **禁止跨服务边界直访持久化** —— 前端 / Controller / 定时任务不得绕过服务层直接访问数据库实现
43
+ 3. **禁止绕过统一认证与数据范围控制暴露业务接口** —— 所有业务接口须经认证 + 数据权限
44
+ 4. **新增写操作须有可追溯审计记录** —— 谁 / 何时 / 改了什么
45
+ 5. **异步消息 / 定时任务 / 补偿逻辑须幂等** —— 重复执行不产生副作用
46
+ 6. **模块边界单一职责无过度耦合**(ARCH-R04)
47
+ 7. **NFR 目标值可测量**(ARCH-R07)—— 性能 / 容量指标有具体数值可验证
48
+ 8. **部署方案环境规划 / CI-CD 完整**(ARCH-R09)
49
+ 9. **风险登记覆盖度充分**(ARCH-R10)
50
+ 10. **模块依赖遵循分层方向、无循环依赖**(原 ARCH-DEP 降级)—— 表现层不得直接访问数据层、service 不得跨层直访;分层违规 / 循环依赖须 AI/人工审查(dependency-cruiser/ArchUnit 项目特定,不进确定性 gate)
51
+
52
+ ## 黑盒审查须人工确认(原 VRF-G02)
53
+
54
+ 所有信任分级为**黑盒**的审查项,必须有人类签署确认(人工签署判断,不可代码确定性判定)。
55
+
56
+ > 为何软:机器无法判定"黑盒审查是否经人工签署"。靠本纪律提醒 AI 主动要求人工确认,并在审查报告记录签署人/时间。
57
+
58
+ ## 关联
59
+ - 确定性架构检查:仅 ARC-09(全局异常处理器)。分层依赖 / 组件行数 → 本软下限 + AI/人工(非确定性,原 ARCH-DEP enforced 假覆盖已删)
60
+ - [[证据驱动与反幻觉]] / [[开发者宪法]]
@@ -0,0 +1,72 @@
1
+ ---
2
+ id: ka-guidance-验证方法
3
+ kind: guidance
4
+ title: 验证方法
5
+ sync_policy: copy_to_project
6
+ status: active
7
+ triggers:
8
+ - 验证
9
+ - verify
10
+ - 测试
11
+ - 端到端
12
+ - 集成测试
13
+ - 验收
14
+ - 执行验证
15
+ - 怎么验证
16
+ target_artifact:
17
+ - review_report
18
+ extra:
19
+ name: verification-method
20
+ scope:
21
+ - '*'
22
+ products:
23
+ - '*'
24
+ type: procedure
25
+ lifecycle_status: active
26
+ version: 1.0.0
27
+ last_reviewed: '2026-06-17'
28
+ verification_layer: L2
29
+ stage: verify
30
+ domain: verify
31
+ owner_mechanism: mc-verifier
32
+ ---
33
+
34
+ # 验证方法:怎么真实验证(禁止假验证)
35
+
36
+ > [[证据驱动与反幻觉]] 第 5/10 条:验证计划不是验证结果,失败必须修复复验。
37
+ > build-gate VRF-G03 守护:端到端核心流程须全过、证据 ≥ E1。
38
+
39
+ ## 分层验证
40
+
41
+ 1. **单元测试**:单个函数/模块逻辑,mock 外部依赖
42
+ 2. **集成测试**:模块组合,真实依赖(DB/缓存)
43
+ 3. **端到端测试**:完整业务流程,浏览器/API 真实跑通
44
+
45
+ 每层都要跑,不能只跑单元测试就交。
46
+
47
+ ## 证据收集
48
+
49
+ - 测试输出(pass/fail/total)
50
+ - 截图(端到端,证明真实跑过)
51
+ - API 响应日志
52
+ - 数据库状态验证(改完数据真的变了)
53
+
54
+ ## Evidence 级别(承接测试计划)
55
+
56
+ - **E0 不可接受**:无运行时证据(静态分析/AI 摘要/"我觉得对")
57
+ - **E1 最低**:运行时证据(测试输出/响应日志)
58
+ - **E2 推荐**:端到端浏览器验证 + API + DB 状态
59
+
60
+ P0 核心业务流程推荐 E2。
61
+
62
+ ## 禁止假验证
63
+
64
+ - 只跑 happy path(违规,必须覆盖异常/边界)
65
+ - mock 掉被测逻辑(违规,测试自己证明自己)
66
+ - 用"验证计划"冒充"验证结果"(违规)
67
+ - 未执行就说"全部通过"(违规)
68
+ - 失败不修复就说"建议验证"后标记完成(违规)
69
+
70
+ ## 失败处理
71
+
72
+ 验证失败 → 进入 [[反馈修复闭环]]:读 findings → 定位根因 → 修复 → 重验 → 重试 5 次 escalate。
@@ -1,29 +0,0 @@
1
- /**
2
- * Scope 检查器 — 写路径 scope 硬检查(工具层拦截)。
3
- *
4
- * 职责边界:
5
- * - 负责:判断文件路径是否在任务允许的写范围内
6
- * - 不负责:门禁检查、业务逻辑、状态派生
7
- *
8
- * 被谁调用:sf_work(act 动作,写入前拦截)
9
- * 调用谁:无(纯计算)
10
- *
11
- * 数据流:文件路径 + allowed_paths → boolean
12
- * 持久化:无
13
- */
14
- /** Scope 检查结果 */
15
- export interface ScopeCheckResult {
16
- /** 是否在范围内 */
17
- allowed: boolean;
18
- /** 拒绝原因(allowed=false 时有值) */
19
- reason?: string;
20
- }
21
- /**
22
- * 检查文件路径是否在允许范围内。
23
- * 规则:
24
- * 1. 不能匹配全局禁止模式
25
- * 2. 必须匹配 allowed_paths 中的至少一个前缀/glob
26
- * 3. read_only_paths 只允许读,不允许写
27
- */
28
- export declare function checkScope(filePath: string, allowedPaths: string[], readOnlyPaths?: string[]): ScopeCheckResult;
29
- //# sourceMappingURL=scope_checker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scope_checker.d.ts","sourceRoot":"","sources":["../../src/core/scope_checker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,iBAAiB;AACjB,MAAM,WAAW,gBAAgB;IAC/B,aAAa;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAWD;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EAAE,EACtB,aAAa,GAAE,MAAM,EAAO,GAC3B,gBAAgB,CA2BlB"}
@@ -1,53 +0,0 @@
1
- /**
2
- * Scope 检查器 — 写路径 scope 硬检查(工具层拦截)。
3
- *
4
- * 职责边界:
5
- * - 负责:判断文件路径是否在任务允许的写范围内
6
- * - 不负责:门禁检查、业务逻辑、状态派生
7
- *
8
- * 被谁调用:sf_work(act 动作,写入前拦截)
9
- * 调用谁:无(纯计算)
10
- *
11
- * 数据流:文件路径 + allowed_paths → boolean
12
- * 持久化:无
13
- */
14
- /** 全局禁止写入的路径模式 */
15
- const DENIED_PATTERNS = [
16
- /\.soloforge\/tasks\//, // 任务文件由 TaskStore 管理
17
- /\.soloforge\/gates\//, // 门禁记录由 GateRecordStore 管理
18
- /\.env/, // 环境变量文件
19
- /\.git\//, // git 内部文件
20
- /node_modules\//, // 依赖目录
21
- ];
22
- /**
23
- * 检查文件路径是否在允许范围内。
24
- * 规则:
25
- * 1. 不能匹配全局禁止模式
26
- * 2. 必须匹配 allowed_paths 中的至少一个前缀/glob
27
- * 3. read_only_paths 只允许读,不允许写
28
- */
29
- export function checkScope(filePath, allowedPaths, readOnlyPaths = []) {
30
- // 规则 1:全局禁止
31
- for (const pattern of DENIED_PATTERNS) {
32
- if (pattern.test(filePath)) {
33
- return { allowed: false, reason: `路径匹配全局禁止模式:${pattern.source}` };
34
- }
35
- }
36
- // 规则 2:只读路径
37
- for (const roPath of readOnlyPaths) {
38
- if (filePath.startsWith(roPath) || filePath.includes(roPath)) {
39
- return { allowed: false, reason: `路径为只读:${roPath}` };
40
- }
41
- }
42
- // 规则 3:必须在允许范围内
43
- if (allowedPaths.length === 0) {
44
- return { allowed: true }; // 未设限制 = 允许全部(除全局禁止外)
45
- }
46
- for (const allowed of allowedPaths) {
47
- if (filePath.startsWith(allowed) || filePath.includes(allowed)) {
48
- return { allowed: true };
49
- }
50
- }
51
- return { allowed: false, reason: `路径不在允许范围内:${filePath}` };
52
- }
53
- //# sourceMappingURL=scope_checker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scope_checker.js","sourceRoot":"","sources":["../../src/core/scope_checker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAYH,kBAAkB;AAClB,MAAM,eAAe,GAAG;IACtB,sBAAsB,EAAY,qBAAqB;IACvD,sBAAsB,EAAY,2BAA2B;IAC7D,OAAO,EAA4B,SAAS;IAC5C,SAAS,EAA0B,WAAW;IAC9C,gBAAgB,EAAmB,OAAO;CAC3C,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CACxB,QAAgB,EAChB,YAAsB,EACtB,gBAA0B,EAAE;IAE5B,YAAY;IACZ,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACtC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QACpE,CAAC;IACH,CAAC;IAED,YAAY;IACZ,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,CAAC;QACvD,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,sBAAsB;IAClD,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACnC,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,QAAQ,EAAE,EAAE,CAAC;AAC7D,CAAC"}
@@ -1,59 +0,0 @@
1
- ---
2
- id: ka-artifact_template-Bug分析模版
3
- kind: artifact
4
- title: Bug分析
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: bug-analysis
9
- scope:
10
- - backend
11
- - frontend
12
- products:
13
- - '*'
14
- lifecycle_status: active
15
- version: 1.1.0
16
- last_reviewed: '2026-06-01'
17
- type: artifact
18
- domain: build
19
- stage: build
20
- owner_mechanism: mc-generic-artifact
21
- ---
22
-
23
- # Bug 分析报告
24
-
25
- ## 1. 问题概述
26
- - **现象描述**:
27
- - **影响范围**:全部用户 / 特定条件 / 偶发 / 必现
28
- - **严重程度**:P0(致命) / P1(严重) / P2(一般) / P3(轻微)
29
- - **发现时间**:
30
- - **发现渠道**:用户反馈 / 自动告警 / 测试发现
31
-
32
- ## 2. 复现步骤
33
- 1.
34
- 2.
35
- 3.
36
- - **前置条件**:
37
- - **输入数据**:
38
- - **环境信息**:
39
-
40
- ## 3. 根因分析
41
- - **直接原因**:
42
- - **深层原因**(设计/实现/测试/流程):
43
- - **归因阶段**:需求 / 设计 / 任务拆解 / 实现 / 测试 / 门禁
44
- - **假设-验证记录**:
45
-
46
- | 假设 | 验证方式 | 结果 | 结论 |
47
- |------|---------|------|------|
48
- | | | | |
49
-
50
- ## 4. 修复方案
51
- - **修复范围**(仅限根因相关文件):
52
- - **修复方式**:
53
- - **回归风险评估**:
54
-
55
- ## 5. 预防措施
56
- - [ ] 是否需要补充测试用例
57
- - [ ] 是否需要补充审查规则
58
- - [ ] 是否需要更新知识条目
59
- - [ ] 是否存在同类问题需排查
@@ -1,48 +0,0 @@
1
- ---
2
- id: ka-pattern-gitops
3
- kind: knowledge
4
- title: Git操作
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: gitops
9
- scope:
10
- - backend
11
- - frontend
12
- products:
13
- - '*'
14
- lifecycle_status: active
15
- version: 1.1.0
16
- last_reviewed: '2026-06-01'
17
- type: knowledge
18
- domain:
19
- - build
20
- - verify
21
- verification_layer: L2
22
- stage: build
23
- owner_mechanism: mc-general-pattern
24
- ---
25
-
26
- ## 决策规则
27
- - Commit 消息必须语义化(feat/fix/refactor/test/docs/chore + 描述),禁止"update"、"fix"等笼统消息
28
- - 每个 commit 对应一个最小变更单元
29
- - 提交前检查清单:lint/format 通过、测试通过、无调试残留(console 输出、print、待办/修复占位标记)、无敏感信息、无超范围变更、无未跟踪大文件
30
- - 功能分支合并必须使用 --no-ff 保留历史
31
- - 冲突在功能分支解决,禁止在 master 上解决冲突
32
- - 单 commit 问题用 git revert,整分支问题用 git revert -m 1
33
- - 分支命名必须包含类型前缀(feature/、fix/、hotfix/、release/),禁止无意义命名
34
- - Commit message 必须遵循 Conventional Commits 规范(type(scope): description)
35
- - 禁止 force push 到 main/master/develop 分支,必须通过 PR/MR 合并
36
- - 每个功能/修复必须从最新 develop/main 创建分支,禁止使用陈旧分支
37
- - 代码合并必须经过至少一人 review 并批准,禁止自行合并
38
- - 合并冲突必须在本地解决并测试,禁止在合并平台上直接解决
39
-
40
- ## 验收项
41
- - [AC-01] Commit 消息语义化(type + description)
42
- - [AC-02] 无调试代码残留
43
- - [AC-03] 合并使用 --no-ff
44
- - [AC-04] 回滚使用 revert 而非 reset
45
- - [AC-05] 分支命名有类型前缀
46
- - [AC-06] Commit message 符合 Conventional Commits
47
- - [AC-07] 无 force push 到主分支
48
- - [AC-08] 代码合并经过 review
@@ -1,46 +0,0 @@
1
- ---
2
- id: ka-artifact_template-OOD设计摘要模版
3
- kind: artifact
4
- title: OOD设计摘要
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: ood-design-summary
9
- scope:
10
- - backend
11
- - frontend
12
- products:
13
- - '*'
14
- lifecycle_status: active
15
- version: 1.1.0
16
- last_reviewed: '2026-06-01'
17
- type: artifact
18
- domain: build
19
- stage: build
20
- owner_mechanism: mc-ood-solid-contract
21
- ---
22
-
23
- # OOD/SOLID 设计摘要
24
-
25
- ## 适用性
26
-
27
- - 任务:
28
- - 适用/不适用理由:
29
-
30
- ## 对象与职责
31
-
32
- | 对象/模块 | 单一职责 | 协作者 | 禁止承担的职责 |
33
- |---|---|---|---|
34
- | | | | |
35
-
36
- ## 接口与依赖方向
37
-
38
- | 接口/端口 | 提供者 | 消费者 | 依赖方向 | 替换/测试策略 |
39
- |---|---|---|---|---|
40
- | | | | | |
41
-
42
- ## 变化点与 SOLID 复验
43
-
44
- | 变化点 | SRP | OCP | LSP | ISP | DIP | 复验证据 |
45
- |---|---|---|---|---|---|---|
46
- | | | | | | | |