soloforge 1.1.46 → 1.1.47

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 (342) hide show
  1. package/README.md +12 -0
  2. package/dist/context/adapters/shared/integration_guide.js +3 -1
  3. package/dist/context/adapters/shared/integration_guide.js.map +1 -1
  4. package/dist/core/gate_record_store.d.ts +11 -7
  5. package/dist/core/gate_record_store.d.ts.map +1 -1
  6. package/dist/core/gate_record_store.js +31 -17
  7. package/dist/core/gate_record_store.js.map +1 -1
  8. package/dist/core/observer.d.ts.map +1 -1
  9. package/dist/core/observer.js +7 -4
  10. package/dist/core/observer.js.map +1 -1
  11. package/dist/domain/asset_registry/derived_registry.d.ts.map +1 -1
  12. package/dist/domain/asset_registry/derived_registry.js +20 -5
  13. package/dist/domain/asset_registry/derived_registry.js.map +1 -1
  14. package/dist/domain/asset_registry/derived_types.d.ts +5 -1
  15. package/dist/domain/asset_registry/derived_types.d.ts.map +1 -1
  16. package/dist/domain/build/contract.d.ts.map +1 -1
  17. package/dist/domain/build/contract.js +3 -8
  18. package/dist/domain/build/contract.js.map +1 -1
  19. package/dist/domain/build/engine.d.ts +3 -2
  20. package/dist/domain/build/engine.d.ts.map +1 -1
  21. package/dist/domain/build/engine.js +5 -2
  22. package/dist/domain/build/engine.js.map +1 -1
  23. package/dist/domain/design/contract.d.ts.map +1 -1
  24. package/dist/domain/design/contract.js +2 -31
  25. package/dist/domain/design/contract.js.map +1 -1
  26. package/dist/domain/design/engine.d.ts +3 -2
  27. package/dist/domain/design/engine.d.ts.map +1 -1
  28. package/dist/domain/design/engine.js +5 -2
  29. package/dist/domain/design/engine.js.map +1 -1
  30. package/dist/domain/engine_helpers.d.ts +18 -2
  31. package/dist/domain/engine_helpers.d.ts.map +1 -1
  32. package/dist/domain/engine_helpers.js +87 -8
  33. package/dist/domain/engine_helpers.js.map +1 -1
  34. package/dist/domain/operate/contract.js +1 -1
  35. package/dist/domain/operate/contract.js.map +1 -1
  36. package/dist/domain/operate/engine.d.ts +3 -2
  37. package/dist/domain/operate/engine.d.ts.map +1 -1
  38. package/dist/domain/operate/engine.js +5 -2
  39. package/dist/domain/operate/engine.js.map +1 -1
  40. package/dist/domain/verify/engine.d.ts +3 -2
  41. package/dist/domain/verify/engine.d.ts.map +1 -1
  42. package/dist/domain/verify/engine.js +5 -2
  43. package/dist/domain/verify/engine.js.map +1 -1
  44. package/dist/gate/executors/executors_artifact.d.ts.map +1 -1
  45. package/dist/gate/executors/executors_artifact.js +8 -5
  46. package/dist/gate/executors/executors_artifact.js.map +1 -1
  47. package/dist/gate/executors/executors_prerequisite.d.ts.map +1 -1
  48. package/dist/gate/executors/executors_prerequisite.js +26 -6
  49. package/dist/gate/executors/executors_prerequisite.js.map +1 -1
  50. package/dist/gate/executors/executors_regex_scan.js +2 -2
  51. package/dist/gate/executors/executors_regex_scan.js.map +1 -1
  52. package/dist/gate/executors/executors_trace.d.ts.map +1 -1
  53. package/dist/gate/executors/executors_trace.js +2 -0
  54. package/dist/gate/executors/executors_trace.js.map +1 -1
  55. package/dist/gate/gate_registry_bridge.d.ts +7 -6
  56. package/dist/gate/gate_registry_bridge.d.ts.map +1 -1
  57. package/dist/gate/gate_registry_bridge.js +51 -13
  58. package/dist/gate/gate_registry_bridge.js.map +1 -1
  59. package/dist/server/tools/sf_doctor.d.ts +1 -0
  60. package/dist/server/tools/sf_doctor.d.ts.map +1 -1
  61. package/dist/server/tools/sf_doctor.js +15 -1
  62. package/dist/server/tools/sf_doctor.js.map +1 -1
  63. package/dist/server/tools/sf_gate.d.ts +1 -1
  64. package/dist/server/tools/sf_gate.js +2 -2
  65. package/dist/server/tools/sf_gate.js.map +1 -1
  66. package/dist/server/tools/sf_work.d.ts.map +1 -1
  67. package/dist/server/tools/sf_work.js +18 -6
  68. package/dist/server/tools/sf_work.js.map +1 -1
  69. package/package.json +2 -1
  70. package/templates/build/enforced.md +73 -0
  71. package/templates/build//344/270/223/351/241/271/345/256/236/347/216/260.md +75 -0
  72. package/templates/build//345/256/211/345/205/250/345/212/240/345/233/272.md +75 -0
  73. package/templates/build//346/265/213/350/257/225/344/274/230/345/205/210/347/274/226/347/240/201.md +50 -79
  74. package/templates/build//346/265/213/350/257/225/350/256/241/345/210/222.md +26 -24
  75. package/templates/build//347/274/226/347/240/201/347/272/252/345/276/213.md +75 -0
  76. package/templates/build//350/260/203/350/257/225/346/216/222/346/237/245.md +44 -75
  77. package/templates/build//351/207/215/346/236/204/346/226/271/346/263/225.md +68 -0
  78. package/templates/design/API/346/216/245/345/217/243/350/247/204/346/240/274/346/226/207/346/241/243.md +31 -28
  79. package/templates/design/enforced.md +47 -77
  80. 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 +1 -0
  81. 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
  82. package/templates/design//345/206/263/347/255/226/344/270/216/351/200/211/345/236/213.md +70 -0
  83. package/templates/design//345/210/207/347/211/207/350/247/204/345/210/222.md +49 -55
  84. 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 +33 -47
  85. package/templates/design//346/236/266/346/236/204/350/256/276/350/256/241.md +41 -83
  86. package/templates/design//351/234/200/346/261/202/345/210/206/346/236/220.md +31 -59
  87. package/templates/operate/enforced.md +11 -0
  88. package/templates/operate//344/270/212/347/272/277/350/247/202/345/257/237.md +53 -32
  89. package/templates/operate//345/217/221/345/270/203/350/257/264/346/230/216.md +3 -0
  90. package/templates/operate//351/203/250/347/275/262/351/205/215/347/275/256.md +83 -0
  91. package/templates/shared/enforced.md +46 -5
  92. package/templates/shared//345/217/215/351/246/210/344/277/256/345/244/215/351/227/255/347/216/257.md +86 -0
  93. package/templates/shared//345/267/245/347/250/213/346/211/247/350/241/214/346/200/273/347/272/262.md +148 -0
  94. package/templates/shared//345/267/245/347/250/213/347/272/252/345/276/213.md +71 -0
  95. package/templates/shared//345/274/200/345/217/221/350/200/205/345/256/252/346/263/225.md +48 -43
  96. package/templates/shared//346/234/272/345/210/266/350/257/264/346/230/216.md +67 -0
  97. 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
  98. package/templates/shared//350/264/241/347/214/256/350/247/204/350/214/203.md +78 -0
  99. package/templates/verify/enforced.md +3 -0
  100. 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 +45 -87
  101. package/templates/verify//344/273/243/347/240/201/345/256/241/346/237/245/346/212/245/345/221/212.md +7 -0
  102. package/templates/verify//345/256/241/346/237/245/346/270/205/345/215/225.md +79 -0
  103. package/templates/verify//351/252/214/350/257/201/346/226/271/346/263/225.md +72 -0
  104. package/templates/build/Bug/345/210/206/346/236/220.md +0 -59
  105. package/templates/build/Git/346/223/215/344/275/234.md +0 -48
  106. package/templates/build/OOD/350/256/276/350/256/241/346/221/230/350/246/201.md +0 -46
  107. package/templates/build/React/346/216/245/345/217/243/351/233/206/346/210/220.md +0 -42
  108. package/templates/build/Schema/345/217/230/346/233/264/346/265/201/346/260/264/347/272/277.md +0 -52
  109. package/templates/build/TS/350/264/250/351/207/217/345/256/241/346/237/245.md +0 -78
  110. package/templates/build//344/270/212/346/270/270/344/272/244/345/217/211/351/252/214/350/257/201.md +0 -68
  111. 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
  112. package/templates/build//344/273/243/347/240/201/351/227/250/347/246/201.md +0 -58
  113. package/templates/build//345/205/250/346/240/210/346/265/201/347/250/213/344/277/256/345/244/215.md +0 -48
  114. package/templates/build//345/210/207/347/211/207/346/211/247/350/241/214/347/272/252/345/276/213.md +0 -108
  115. 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
  116. package/templates/build//345/212/237/350/203/275/345/274/200/345/217/221.md +0 -66
  117. package/templates/build//345/220/216/347/253/257/345/256/236/347/216/260.md +0 -39
  118. package/templates/build//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213.md +0 -33
  119. 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
  120. package/templates/build//345/220/216/347/253/257/346/216/245/345/217/243/345/256/236/347/216/260.md +0 -43
  121. package/templates/build//345/233/275/351/231/205/345/214/226.md +0 -45
  122. 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
  123. package/templates/build//345/256/211/345/205/250/345/256/241/346/237/245.md +0 -154
  124. package/templates/build//345/256/211/345/205/250/345/256/241/350/256/241.md +0 -47
  125. package/templates/build//345/267/245/347/250/213/347/272/252/345/276/213.md +0 -56
  126. package/templates/build//346/200/247/350/203/275/345/210/206/346/236/220.md +0 -59
  127. package/templates/build//346/200/247/350/203/275/346/265/201/346/260/264/347/272/277.md +0 -53
  128. 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
  129. package/templates/build//346/225/260/346/215/256/345/272/223/350/277/201/347/247/273.md +0 -63
  130. 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
  131. package/templates/build//346/235/203/351/231/220/350/256/244/350/257/201.md +0 -49
  132. package/templates/build//346/265/213/350/257/225/350/264/250/351/207/217.md +0 -45
  133. package/templates/build//347/206/224/346/226/255/351/231/215/347/272/247.md +0 -49
  134. package/templates/build//347/212/266/346/200/201/346/265/201/350/275/254.md +0 -43
  135. package/templates/build//347/213/254/347/253/213/345/256/241/346/237/245.md +0 -45
  136. package/templates/build//347/272/246/346/235/237/345/256/236/347/216/260.md +0 -47
  137. package/templates/build//347/274/226/347/240/201/345/260/261/347/273/252/345/256/241/346/237/245.md +0 -60
  138. package/templates/build//347/274/226/347/240/201/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -22
  139. package/templates/build//347/274/226/347/240/201/350/264/250/351/207/217.md +0 -46
  140. package/templates/build//347/274/226/347/240/201/351/230/266/346/256/265/346/211/247/350/241/214.md +0 -105
  141. package/templates/build//347/274/272/351/231/267/347/256/241/347/220/206.md +0 -47
  142. package/templates/build//350/200/246/345/220/210/346/243/200/346/265/213.md +0 -86
  143. package/templates/build//350/246/206/347/233/226/347/216/207/346/240/207/345/207/206.md +0 -40
  144. package/templates/build//350/264/250/351/207/217/345/256/241/346/237/245.md +0 -111
  145. package/templates/build//350/277/201/347/247/273/346/265/201/346/260/264/347/272/277.md +0 -52
  146. package/templates/build//351/200/232/347/224/250/350/264/250/351/207/217.md +0 -176
  147. package/templates/build//351/207/215/346/236/204/346/226/271/346/241/210.md +0 -61
  148. package/templates/build//351/207/215/346/236/204/346/265/201/346/260/264/347/272/277.md +0 -53
  149. package/templates/build//351/230/262/345/276/241/346/200/247/347/274/226/347/240/201.md +0 -94
  150. package/templates/build//351/233/206/346/210/220/351/252/214/350/257/201.md +0 -67
  151. package/templates/build//351/233/267/345/214/272/345/217/215/346/250/241/345/274/217.md +0 -135
  152. package/templates/build//351/252/214/346/224/266/346/240/207/345/207/206/345/256/241/346/237/245.md +0 -64
  153. package/templates/build//351/252/214/346/224/266/346/265/213/350/257/225/350/247/204/345/210/222.md +0 -75
  154. package/templates/design/API/350/256/276/350/256/241.md +0 -47
  155. package/templates/design/N/345/212/2401/346/237/245/350/257/242.md +0 -48
  156. package/templates/design/OOD/350/256/276/350/256/241.md +0 -72
  157. package/templates/design//344/270/200/350/207/264/346/200/247/346/240/241/351/252/214.md +0 -109
  158. 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
  159. package/templates/design//344/273/273/345/212/241/346/213/206/350/247/243.md +0 -61
  160. package/templates/design//344/273/273/345/212/241/350/247/204/345/210/222.md +0 -84
  161. package/templates/design//344/274/232/350/257/235/346/201/242/345/244/215-procedures.md +0 -78
  162. package/templates/design//345/205/274/345/256/271/346/200/247/346/243/200/346/237/245.md +0 -89
  163. package/templates/design//345/210/207/347/211/207/350/256/241/345/210/222.md +0 -149
  164. package/templates/design//345/211/215/347/253/257/346/200/247/350/203/275.md +0 -49
  165. 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
  166. package/templates/design//345/216/237/345/236/213/346/272/220/347/240/201/346/217/220/345/217/226.md +0 -78
  167. package/templates/design//345/216/237/345/236/213/350/257/264/346/230/216.md +0 -200
  168. package/templates/design//345/216/237/345/236/213/350/257/264/346/230/216/345/256/241/346/237/245.md +0 -81
  169. 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
  170. package/templates/design//345/221/275/344/273/244/346/211/247/350/241/214-procedures.md +0 -45
  171. package/templates/design//345/221/275/344/273/244/350/267/257/347/224/261-procedures.md +0 -46
  172. package/templates/design//345/221/275/345/220/215.md +0 -49
  173. 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
  174. package/templates/design//345/267/245/345/205/267/350/260/203/347/224/250-procedures.md +0 -41
  175. package/templates/design//345/271/266/345/217/221/346/216/247/345/210/266.md +0 -50
  176. package/templates/design//346/212/200/346/234/257/351/200/211/345/236/213.md +0 -33
  177. package/templates/design//346/216/245/345/217/243/345/257/271/346/216/245/346/226/271/346/241/210.md +0 -97
  178. 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
  179. 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
  180. package/templates/design//346/225/260/346/215/256/350/241/200/347/274/230/345/233/276.md +0 -49
  181. package/templates/design//346/227/240/351/232/234/347/242/215.md +0 -49
  182. package/templates/design//346/236/266/346/236/204/345/206/263/347/255/226/350/256/260/345/275/225.md +0 -53
  183. package/templates/design//346/236/266/346/236/204/345/256/241/346/237/245.md +0 -256
  184. package/templates/design//346/236/266/346/236/204/350/256/276/350/256/241-constraints.md +0 -177
  185. package/templates/design//346/236/266/346/236/204/350/256/276/350/256/241-procedures.md +0 -130
  186. 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
  187. package/templates/design//346/272/220/347/240/201/345/216/237/345/236/213/344/272/244/344/273/230.md +0 -58
  188. 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
  189. 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
  190. 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
  191. package/templates/design//347/264/247/346/200/245/345/233/236/346/273/232/346/211/213/345/206/214.md +0 -77
  192. package/templates/design//347/274/226/347/240/201/345/211/215/346/276/204/346/270/205.md +0 -85
  193. 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
  194. package/templates/design//350/207/252/344/270/273/351/200/211/345/236/213.md +0 -57
  195. 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
  196. 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
  197. package/templates/design//350/256/276/350/256/241/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -21
  198. package/templates/design//350/257/246/347/273/206/350/256/276/350/256/241-procedures.md +0 -123
  199. package/templates/design//350/257/246/347/273/206/350/256/276/350/256/241.md +0 -109
  200. package/templates/design//350/257/246/347/273/206/350/256/276/350/256/241/345/256/241/346/237/245.md +0 -88
  201. package/templates/design//350/260/203/350/257/225/346/226/271/346/263/225/350/256/272.md +0 -43
  202. package/templates/design//350/277/201/347/247/273/350/257/204/344/274/260.md +0 -67
  203. 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
  204. package/templates/design//351/234/200/346/261/202/346/276/204/346/270/205.md +0 -65
  205. package/templates/design//351/234/200/346/261/202/350/264/250/351/207/217/345/256/241/346/237/245.md +0 -88
  206. package/templates/design//351/242/206/345/237/237/351/251/261/345/212/250/350/256/276/350/256/241.md +0 -43
  207. package/templates/operate//345/217/221/345/270/203/350/257/264/346/230/216/345/256/241/346/237/245.md +0 -60
  208. package/templates/operate//350/277/220/347/273/264/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -22
  209. package/templates/operate//351/203/250/347/275/262/351/205/215/347/275/256/345/256/241/346/237/245.md +0 -59
  210. package/templates/shared/Diff/345/275/222/345/261/236/350/277/275/350/270/252.md +0 -55
  211. package/templates/shared/Java/350/264/250/351/207/217/351/227/250/347/246/201.md +0 -54
  212. package/templates/shared/OOD/344/270/216SOLID/350/256/276/350/256/241.md +0 -48
  213. package/templates/shared//344/272/247/347/211/251Schema/346/263/250/345/206/214/344/270/255/345/277/203.md +0 -57
  214. package/templates/shared//344/272/247/347/211/251/345/245/221/347/272/246.md +0 -44
  215. 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
  216. 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
  217. package/templates/shared//344/273/273/345/212/241/347/212/266/346/200/201/346/234/272.md +0 -55
  218. package/templates/shared//344/273/273/345/212/241/347/256/241/347/220/206/345/231/250.md +0 -55
  219. package/templates/shared//344/274/230/351/233/205/345/201/234/346/234/272.md +0 -43
  220. 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
  221. package/templates/shared//344/275/234/347/224/250/345/237/237/347/247/237/347/272/246.md +0 -55
  222. package/templates/shared//345/206/262/347/252/201/351/227/250/347/246/201.md +0 -55
  223. package/templates/shared//345/206/263/347/255/226/347/275/221/345/205/263.md +0 -47
  224. package/templates/shared//345/210/207/347/211/207/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -72
  225. package/templates/shared//345/217/230/345/274/202/345/256/241/350/256/241.md +0 -58
  226. 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
  227. package/templates/shared//345/221/275/344/273/244/346/211/247/350/241/214.md +0 -48
  228. package/templates/shared//345/221/275/344/273/244/350/267/257/347/224/261.md +0 -45
  229. package/templates/shared//345/233/236/345/275/222/347/237/251/351/230/265.md +0 -54
  230. package/templates/shared//345/244/232/347/247/237/346/210/267.md +0 -49
  231. package/templates/shared//345/256/241/350/256/241/346/227/245/345/277/227.md +0 -46
  232. package/templates/shared//345/257/274/345/205/245/345/257/274/345/207/272.md +0 -51
  233. package/templates/shared//345/267/245/344/275/234/345/214/272/344/272/222/346/226/245/351/224/201.md +0 -52
  234. package/templates/shared//345/267/245/344/275/234/345/214/272/345/224/244/351/206/222.md +0 -54
  235. package/templates/shared//345/267/245/344/275/234/346/265/201/345/245/221/347/272/246.md +0 -42
  236. package/templates/shared//345/267/245/344/275/234/346/265/201/345/274/225/346/223/216.md +0 -50
  237. package/templates/shared//345/267/245/344/275/234/346/265/201/346/250/241/347/211/210/345/214/205.md +0 -34
  238. package/templates/shared//345/267/245/345/205/267/350/260/203/347/224/250.md +0 -48
  239. package/templates/shared//345/271/266/345/217/221/351/224/201.md +0 -57
  240. package/templates/shared//346/211/247/350/241/214/345/256/210/345/215/253/350/257/204/344/274/260.md +0 -47
  241. package/templates/shared//346/211/251/345/261/225/347/224/237/345/221/275/345/221/250/346/234/237.md +0 -34
  242. package/templates/shared//346/212/200/346/234/257/345/206/263/347/255/226/344/270/273/346/235/203.md +0 -50
  243. package/templates/shared//346/212/245/350/241/250/347/273/237/350/256/241.md +0 -50
  244. package/templates/shared//346/224/257/344/273/230.md +0 -51
  245. package/templates/shared//346/225/217/346/204/237/344/277/241/346/201/257/345/244/204/347/220/206.md +0 -77
  246. package/templates/shared//346/225/217/346/204/237/344/277/241/346/201/257/346/211/253/346/217/217.md +0 -53
  247. package/templates/shared//346/225/260/346/215/256/346/235/203/351/231/220.md +0 -47
  248. package/templates/shared//346/226/275/345/267/245/346/214/207/344/273/244/345/245/221/347/272/246.md +0 -69
  249. package/templates/shared//346/227/245/345/277/227/346/262/273/347/220/206.md +0 -31
  250. package/templates/shared//346/234/272/345/210/266/350/207/252/346/262/273/347/220/206.md +0 -31
  251. package/templates/shared//346/240/207/345/207/206/350/265/204/344/272/247/350/246/206/347/233/226.md +0 -50
  252. package/templates/shared//346/240/270/345/277/203/344/275/223/351/252/214/345/216/237/345/210/231.md +0 -38
  253. 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
  254. package/templates/shared//346/250/241/347/211/210Frontmatter.md +0 -125
  255. package/templates/shared//346/250/241/347/211/210/350/264/241/347/214/256/346/214/207/345/215/227.md +0 -282
  256. 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
  257. 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
  258. 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
  259. package/templates/shared//346/274/224/350/277/233/345/233/236/345/275/222/351/227/250/346/216/247.md +0 -50
  260. package/templates/shared//347/224/250/346/210/267/345/217/215/351/246/210/345/245/221/347/272/246.md +0 -86
  261. package/templates/shared//347/237/245/350/257/206/344/270/273/346/235/203.md +0 -66
  262. package/templates/shared//347/237/245/350/257/206/346/262/273/347/220/206.md +0 -31
  263. package/templates/shared//347/237/245/350/257/206/346/263/250/345/205/245/350/276/271/347/225/214.md +0 -47
  264. package/templates/shared//347/273/206/350/212/202/347/272/252/345/276/213.md +0 -54
  265. 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
  266. package/templates/shared//350/256/241/345/210/222/345/211/215/347/275/256/351/227/250.md +0 -47
  267. package/templates/shared//350/256/276/350/256/241/344/272/247/347/211/251/345/214/205.md +0 -58
  268. package/templates/shared//350/257/255/344/271/211/350/257/201/346/215/256.md +0 -55
  269. 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
  270. package/templates/shared//350/276/223/345/205/245/346/235/220/346/226/231/345/245/221/347/272/246.md +0 -50
  271. package/templates/shared//350/277/220/350/241/214/345/256/211/345/205/250/345/214/205.md +0 -58
  272. package/templates/shared//351/200/232/347/224/250/345/206/263/347/255/226/347/240/224/350/256/250.md +0 -62
  273. package/templates/shared//351/200/232/347/224/250/346/234/272/346/242/260/346/235/241/346/254/276.md +0 -47
  274. package/templates/shared//351/200/232/347/237/245.md +0 -50
  275. package/templates/shared//351/203/250/347/275/262/351/205/215/347/275/256.md +0 -14
  276. package/templates/shared//351/205/215/347/275/256/344/274/230/345/205/210/347/272/247.md +0 -67
  277. package/templates/shared//351/205/215/347/275/256/350/220/275/347/233/230/350/276/271/347/225/214.md +0 -32
  278. package/templates/shared//351/230/262/345/255/244/345/262/233/345/256/236/347/216/260.md +0 -51
  279. package/templates/shared//351/233/266/351/205/215/347/275/256/345/210/235/345/247/213/345/214/226.md +0 -57
  280. 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
  281. package/templates/shared//351/252/214/350/257/201/345/221/275/344/273/244/347/224/237/346/210/220.md +0 -55
  282. package/templates/shared//351/252/214/350/257/201/345/245/221/347/272/246.md +0 -48
  283. package/templates/verify/Docker/351/203/250/347/275/262.md +0 -46
  284. package/templates/verify/POC/347/273/223/350/256/272.md +0 -53
  285. package/templates/verify/React/345/210/227/350/241/250/350/241/250/346/240/274.md +0 -43
  286. package/templates/verify/React/347/212/266/346/200/201/347/256/241/347/220/206.md +0 -42
  287. package/templates/verify/React/347/273/204/344/273/266.md +0 -42
  288. package/templates/verify/React/350/241/250/345/215/225.md +0 -43
  289. package/templates/verify/React/350/267/257/347/224/261.md +0 -43
  290. package/templates/verify/SOLID/344/273/243/347/240/201/345/256/241/346/237/245.md +0 -74
  291. package/templates/verify/SOLID/350/256/276/350/256/241.md +0 -31
  292. package/templates/verify/Schema/345/205/274/345/256/271.md +0 -42
  293. package/templates/verify/Vue/347/212/266/346/200/201/347/256/241/347/220/206.md +0 -42
  294. package/templates/verify/Vue/347/273/204/344/273/266.md +0 -42
  295. package/templates/verify/Vue/350/267/257/347/224/261.md +0 -43
  296. 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
  297. package/templates/verify//344/270/273/351/223/276/350/267/257/346/216/245/345/205/245.md +0 -38
  298. package/templates/verify//344/272/213/344/273/266/351/251/261/345/212/250.md +0 -46
  299. package/templates/verify//344/272/213/345/212/241/346/250/241/345/274/217.md +0 -42
  300. 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
  301. 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
  302. package/templates/verify//344/274/232/350/257/235/346/201/242/345/244/215.md +0 -46
  303. 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
  304. package/templates/verify//345/210/206/351/241/265/346/237/245/350/257/242.md +0 -41
  305. package/templates/verify//345/211/215/347/253/257/351/241/265/351/235/242.md +0 -40
  306. 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
  307. package/templates/verify//345/217/221/345/270/203/345/220/216/345/256/241/346/237/245.md +0 -73
  308. package/templates/verify//345/220/216/347/253/257API.md +0 -39
  309. package/templates/verify//345/242/236/345/210/240/346/224/271/346/237/245.md +0 -45
  310. package/templates/verify//345/244/226/351/203/250/344/276/235/350/265/226.md +0 -43
  311. package/templates/verify//345/245/221/347/272/246/345/205/274/345/256/271.md +0 -42
  312. package/templates/verify//345/256/232/346/227/266/344/273/273/345/212/241.md +0 -39
  313. package/templates/verify//345/256/236/346/227/266/346/216/250/351/200/201.md +0 -48
  314. package/templates/verify//345/256/241/346/237/245/346/221/230/350/246/201.md +0 -58
  315. package/templates/verify//345/267/245/344/275/234/346/265/201.md +0 -38
  316. package/templates/verify//345/271/266/345/217/221/345/256/241/346/237/245.md +0 -132
  317. package/templates/verify//345/274/202/346/255/245/345/257/274/345/207/272.md +0 -41
  318. package/templates/verify//346/200/247/350/203/275/345/256/241/346/237/245.md +0 -110
  319. package/templates/verify//346/216/245/345/217/243/345/245/221/347/272/246.md +0 -44
  320. package/templates/verify//346/216/245/345/217/243/345/245/221/347/272/246/345/256/241/346/237/245.md +0 -131
  321. package/templates/verify//346/220/234/347/264/242/346/250/241/345/274/217.md +0 -47
  322. package/templates/verify//346/225/205/351/232/234/345/244/215/347/233/230.md +0 -67
  323. package/templates/verify//346/225/260/346/215/256/345/272/223/345/217/230/346/233/264.md +0 -37
  324. package/templates/verify//346/225/260/346/215/256/351/232/220/347/247/201.md +0 -46
  325. package/templates/verify//346/226/207/344/273/266/344/270/212/344/274/240.md +0 -45
  326. package/templates/verify//346/227/245/345/277/227.md +0 -45
  327. 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
  328. package/templates/verify//346/240/270/345/277/203/345/267/245/347/250/213/346/211/247/350/241/214.md +0 -65
  329. package/templates/verify//347/237/245/350/257/206/346/263/250/345/205/245.md +0 -38
  330. 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
  331. package/templates/verify//347/274/223/345/255/230/347/255/226/347/225/245.md +0 -45
  332. 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
  333. package/templates/verify//350/201/224/350/260/203/351/252/214/350/257/201.md +0 -87
  334. package/templates/verify//350/256/276/350/256/241/345/256/241/350/256/241.md +0 -184
  335. package/templates/verify//350/257/225/350/277/220/350/241/214/347/206/224/346/226/255.md +0 -74
  336. package/templates/verify//350/276/223/345/205/245/346/240/241/351/252/214.md +0 -44
  337. package/templates/verify//351/203/250/347/275/262/345/217/221/345/270/203.md +0 -101
  338. package/templates/verify//351/224/231/350/257/257/345/244/204/347/220/206.md +0 -46
  339. package/templates/verify//351/224/231/350/257/257/350/276/271/347/225/214.md +0 -38
  340. package/templates/verify//351/232/220/347/247/201/345/256/241/346/237/245.md +0 -37
  341. package/templates/verify//351/252/214/350/257/201.md +0 -38
  342. 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,111 +0,0 @@
1
- ---
2
- id: ka-review-rule-质量审查规则
3
- kind: guidance
4
- title: 质量审查
5
- sync_policy: copy_to_project
6
- status: active
7
- triggers:
8
- - verify
9
- - review
10
- - 质量检查
11
- - 代码质量
12
- extra:
13
- name: quality-rules
14
- type: constraint
15
- scope:
16
- - backend
17
- - frontend
18
- products:
19
- - '*'
20
- lifecycle_status: active
21
- version: 1.2.0
22
- last_reviewed: '2026-06-04'
23
- domain: build
24
- verification_layer: L2
25
- stage: build
26
- owner_mechanism: mc-generic-review
27
- ---
28
-
29
- ## QUA-01: 生产代码包含 console.log 调试输出
30
- pattern: /console\.log\s*\(/
31
- severity: warning
32
- check_type: deterministic
33
- scope: "!test"
34
- description: 生产代码禁止保留 console.log,应使用正式日志框架并按级别输出
35
-
36
- ## QUA-02: TypeScript 使用 any 类型
37
- pattern: /:\s*any\b|as\s+any\b|<any>/
38
- severity: info
39
- check_type: deterministic
40
- scope: frontend
41
- description: 禁止使用 any 类型,应定义具体的 TypeScript 接口
42
-
43
- ## QUA-03: 魔法数字未定义为常量
44
- pattern: /(?:if|while|return)\s*\(.*[^\w>!=]\d{2,}[^\w.]/
45
- severity: info
46
- check_type: deterministic
47
- scope: [backend, frontend]
48
- description: 代码中的数字常量应提取为命名常量,提高可读性和可维护性
49
-
50
- ## QUA-04: 硬编码的 URL 或 IP 地址
51
- pattern: /https?:\/\/(?:localhost|127\.0\.0\.1|192\.168|10\.\d+\.\d+)\b/
52
- severity: warning
53
- check_type: deterministic
54
- scope: [backend, frontend]
55
- description: 服务地址禁止硬编码,必须使用环境变量或配置文件管理
56
-
57
- ## QUA-05: catch 块吞掉异常不处理
58
- pattern: /catch\s*\([^)]*\)\s*\{\s*\}/
59
- severity: error
60
- check_type: deterministic
61
- scope: [backend, frontend]
62
- description: 空的 catch 块会隐藏错误,至少需要记录日志或明确注释忽略原因
63
-
64
- ## QUA-06: 注释掉的代码块(超过 3 行)
65
- pattern: /^\s*\/\/\s*(?:import|export|const|let|var|function|class|public|private)\b/
66
- severity: info
67
- check_type: deterministic
68
- scope: [backend, frontend]
69
- description: 注释掉的代码应删除,需要时从版本控制中恢复
70
-
71
- ## QUA-07: System.out.println 替代日志框架
72
- pattern: /System\.out\.print/
73
- severity: warning
74
- check_type: deterministic
75
- scope: backend
76
- description: 禁止使用 System.out.println,必须使用 SLF4J/Log4j 等日志框架
77
-
78
- ## QUA-08: 空 catch 块中无日志记录
79
- pattern: /catch\s*\([^)]*\)\s*\{[^}]*\}/
80
- severity: warning
81
- check_type: deterministic
82
- scope: [backend, frontend]
83
- description: catch 块中必须至少包含日志记录,不允许静默忽略异常
84
-
85
- ## QUA-09: 待办/修复占位注释未跟踪
86
- pattern: /(?:T[O]DO|F[I]XME|H[A]CK|X{3})\s*[:\(]/
87
- severity: info
88
- check_type: deterministic
89
- scope: [backend, frontend]
90
- description: 待办/修复占位注释必须关联 issue 编号,禁止无跟踪的技术债标记
91
-
92
- ## QUA-10: 单元测试缺少断言
93
- pattern: /@Test[\s\S]*?(?:expect|assert|verify|should)/
94
- severity: warning
95
- check_type: deterministic
96
- scope: [backend, frontend]
97
- description: 测试方法必须包含至少一个断言,空测试等于没有测试
98
-
99
- ## QUA-11: 过深的嵌套层级
100
- check_hint: nesting_depth
101
- severity: info
102
- check_type: programmatic
103
- scope: [backend, frontend]
104
- description: 代码嵌套层级超过 4 层时应重构(卫语句、提前返回、策略模式)
105
-
106
- ## QUA-12: 未处理可空返回值
107
- pattern: /\.get\(\s*\)\s*\.|\.findFirst\(\s*\)\s*\./
108
- severity: warning
109
- check_type: deterministic
110
- scope: backend
111
- description: Optional/List.get() 返回值必须判空,禁止直接链式调用导致 NPE
@@ -1,52 +0,0 @@
1
- ---
2
- id: ka-procedure-迁移流水线
3
- kind: guidance
4
- title: 迁移流水线
5
- sync_policy: copy_to_project
6
- status: active
7
- triggers:
8
- - 技术迁移
9
- - 框架升级
10
- - 技术栈迁移
11
- - 版本升级
12
- - 迁移
13
- - migration
14
- - 系统迁移
15
- - 组件替换
16
- extra:
17
- name: migration-pipeline
18
- type: procedure
19
- scope:
20
- - backend
21
- - frontend
22
- products:
23
- - '*'
24
- lifecycle_status: active
25
- version: 1.1.0
26
- last_reviewed: '2026-06-01'
27
- domain:
28
- - build
29
- - verify
30
- verification_layer: L2
31
- stage: build
32
- ---
33
-
34
- # 技术迁移管线
35
-
36
- ## 第1步:迁移评估
37
- 评估迁移范围和影响(模块数、代码量、依赖链)。评估迁移路径(渐进式/一次性)。评估兼容性风险(API 变更、行为差异、性能差异)。制定回滚方案。
38
- 模版:迁移评估.md
39
- 产出保存到:docs/architecture/08-迁移方案.md
40
- 工具:sf_analyze
41
-
42
- ## 第2步:方案设计
43
- 制定分阶段迁移计划(每阶段可独立验证和回滚)。识别兼容层需求(适配器/Shim/Feature Flag)。定义每个阶段的完成标准和验证方式。
44
- 产出保存到:docs/architecture/08-迁移方案.md
45
-
46
- ## 第3步:渐进迁移
47
- 按计划逐步迁移,每阶段完成后全量测试。保持双写/双读过渡期(如需要)。记录每阶段发现的行为差异和兼容性问题。
48
- 工具:sf_work action=act, sf_gate
49
-
50
- ## 第4步:清理验证
51
- 移除兼容层和废弃代码。全量功能验证。性能对比确认无退化。更新文档和依赖配置。
52
- 工具:sf_work action=verify, sf_gate
@@ -1,176 +0,0 @@
1
- ---
2
- id: ka-artifact_template-general-quality
3
- kind: artifact
4
- title: 通用质量
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: general-quality
9
- scope:
10
- - backend
11
- - frontend
12
- products:
13
- - '*'
14
- lifecycle_status: active
15
- version: 1.3.0
16
- last_reviewed: '2026-06-07'
17
- type: artifact
18
- domain: build
19
- stage: build
20
- owner_mechanism: mc-standard-asset-contract
21
- ---
22
-
23
- ## 验收项
24
-
25
- - id: AC-01
26
- name: "无 SQL 字符串拼接"
27
- severity: warning
28
- check_type: deterministic
29
- pattern: "grep -E '(SELECT|INSERT|UPDATE|DELETE).*(\\+|\\$\\{|%s)' {file}"
30
- description: 使用参数化查询或 ORM,禁止字符串拼接 SQL
31
-
32
- - id: AC-02
33
- name: "无 eval/Function 动态代码执行"
34
- severity: warning
35
- check_type: deterministic
36
- pattern: "grep -c '\\beval\\s*(\\|new Function\\s*(' {file}"
37
- description: 禁止使用 eval 和 new Function,防止代码注入
38
-
39
- - id: AC-03
40
- name: "前端无 innerHTML 赋值(防 XSS)"
41
- severity: warning
42
- check_type: deterministic
43
- pattern: "grep -c '\\.innerHTML\\s*=' {file}"
44
- description: 使用 textContent 或框架安全的渲染方式
45
-
46
- - id: AC-04
47
- name: "无循环内数据库调用(防 N+1)"
48
- severity: warning
49
- check_type: deterministic
50
- pattern: "grep -B3 '\\.save\\|\\.insert\\|\\.update\\|\\.query\\|\\.select' {file} | grep -c 'for\\|while'"
51
- description: 循环体内禁止数据库操作,应使用批量操作
52
-
53
- - id: AC-05
54
- name: "无硬编码的敏感信息"
55
- severity: error
56
- check_type: deterministic
57
- pattern: "grep -ic 'password\\s*=\\s*[\"\\x27]\\|secret\\s*=\\s*[\"\\x27]\\|token\\s*=\\s*[\"\\x27]' {file}"
58
- description: 密码/密钥/token 禁止硬编码,必须使用环境变量或密钥管理服务
59
-
60
- - id: AC-06
61
- name: "文件不超过 500 行"
62
- severity: warning
63
- check_type: deterministic
64
- pattern: "wc -l {file}"
65
- description: 超过 500 行的文件应拆分为更小的模块
66
-
67
- - id: AC-07
68
- name: "无未处理的待办/修复占位标记"
69
- severity: warning
70
- check_type: deterministic
71
- pattern: "grep -c 'T[O]DO\\|F[I]XME\\|H[A]CK\\|X\\{3\\}' {file}"
72
- description: TODO/FIXME/HACK/XXX 必须关联 issue 编号或记录为技术债务
73
-
74
- - id: AC-08
75
- name: "编译无错误和警告"
76
- severity: warning
77
- check_type: deterministic
78
- pattern: "npm run build 2>&1 | grep -c 'error\\|warning'"
79
- description: 构建必须零错误零警告
80
-
81
- - id: AC-09
82
- name: "单元测试覆盖核心逻辑"
83
- severity: warning
84
- check_type: deterministic
85
- pattern: "ls *Test.java *Test.tsx *.test.ts *.spec.ts {dir} 2>/dev/null | wc -l"
86
- description: 核心逻辑必须有对应测试文件
87
-
88
- - id: AC-10
89
- name: "接口变更同步更新了文档或契约定义"
90
- severity: warning
91
- check_type: deterministic
92
- pattern: "grep -c 'swagger\\|openapi\\|ApiOperation\\|@Api' {file}"
93
- description: 接口变更必须同步更新 Swagger/OpenAPI 文档
94
-
95
- - id: AC-11
96
- name: "单元测试覆盖率达标"
97
- severity: warning
98
- check_type: deterministic
99
- pattern: "grep -r 'coverage\\|覆盖率' {dir} | head -3"
100
- description: 核心逻辑覆盖率≥80%
101
-
102
- - id: AC-12
103
- name: "集成测试覆盖关键业务路径"
104
- severity: warning
105
- check_type: deterministic
106
- pattern: "ls *IT.java *IT.test.ts *e2e* {dir} 2>/dev/null | wc -l"
107
- description: 关键业务路径必须有集成测试
108
-
109
- - id: AC-13
110
- name: "配置了监控告警"
111
- severity: info
112
- check_type: deterministic
113
- pattern: "grep -c 'alert\\|告警\\|metrics\\|SLO\\|SLA' {file}"
114
- description: 错误率、响应时间等关键指标须配置告警
115
-
116
- - id: AC-14
117
- name: "有回滚方案和验证清单"
118
- severity: warning
119
- check_type: deterministic
120
- pattern: "grep -c 'rollback\\|回滚\\|revert' {file}"
121
- description: 变更必须有回滚方案
122
-
123
- - id: AC-15
124
- name: "技术文档已更新"
125
- severity: info
126
- check_type: deterministic
127
- pattern: "git diff --name-only {base}..HEAD | grep -c 'README\\|CHANGELOG\\|doc'"
128
- description: 接口文档、架构文档须同步更新
129
-
130
- - id: AC-16
131
- name: "性能满足 SLA 要求"
132
- severity: info
133
- check_type: deterministic
134
- pattern: "grep -c 'performance\\|SLA\\|P99\\|latency\\|benchmark' {file}"
135
- description: P99 响应时间、吞吐量须满足 SLA
136
-
137
- - id: AC-17
138
- name: "日志包含 traceId 支持链路追踪"
139
- severity: warning
140
- check_type: deterministic
141
- pattern: "grep -c 'traceId\\|trace_id\\|TraceId\\|MDC\\|correlationId' {file}"
142
- description: 日志必须包含 traceId 支持全链路追踪
143
-
144
- - id: AC-18
145
- name: "交付物末尾已签署终局宣言"
146
- severity: warning
147
- check_type: deterministic
148
- pattern: "grep -c 'SoloForge Audit: PASS' {file}"
149
- description: 掘地三尺契约——终局宣言签署
150
-
151
- - id: AC-19
152
- name: "验收项覆盖边界场景"
153
- severity: warning
154
- check_type: semantic
155
- pattern: "三重否定推演——空值/极端值/异常输入,非仅 happy path"
156
- description: 验收项必须覆盖空值、极端值、异常输入,不得仅验证 happy path
157
-
158
- - id: AC-20
159
- name: "外部调用包含超时/异常/降级场景"
160
- severity: warning
161
- check_type: semantic
162
- pattern: "链路否定——涉及外部调用时验收项包含超时/异常格式/降级场景"
163
- description: 涉及外部调用的验收项必须包含超时、异常格式、降级场景
164
-
165
- - id: AC-21
166
- name: "测试断言精确度达标"
167
- severity: warning
168
- check_type: semantic
169
- pattern: "变异防造假——精确断言率 >= 50%,无自己证明自己问题"
170
- description: 测试断言精确断言率≥50%,禁止"自己证明自己"的弱断言
171
-
172
- ## 高级验证(可选)
173
-
174
- - **变异测试**:核心逻辑≥3 变异体,杀死率≥80%
175
- - **属性测试**:关键算法≥100 随机用例
176
- - **安全审查**:输入校验覆盖 CWE-20
@@ -1,61 +0,0 @@
1
- ---
2
- id: ka-artifact_template-重构方案模版
3
- kind: artifact
4
- title: 重构方案
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: refactoring-plan
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
- # 重构方案文档
24
-
25
- ## 1. 重构动机
26
- - 当前问题(坏味道描述 + 量化数据):
27
- - 不重构的长期风险:
28
-
29
- ## 2. 重构目标
30
- - 目标状态描述:
31
- - 可衡量的改善指标(圈复杂度/行数/类数):
32
-
33
- ## 3. Before/After 对比
34
- ### Before(当前结构)
35
- - 类/方法职责描述
36
- - 调用关系图
37
- - 关键度量(行数、分支数)
38
-
39
- ### After(重构后结构)
40
- - 类/方法职责描述
41
- - 调用关系图
42
- - 关键度量(预期行数、分支数)
43
-
44
- ## 4. 实施步骤
45
- | 步骤 | 变更内容 | 可独立验证 | 回滚方式 |
46
- |------|---------|-----------|---------|
47
- | 1 | | | |
48
- | 2 | | | |
49
-
50
- ## 5. 风险评估
51
- - 影响范围(受影响的接口/模块/测试):
52
- - 行为等价性保障(如何确认不改变外部行为):
53
- - 回滚策略:
54
-
55
- ## 6. 质量保障检查
56
- - [ ] 重构是否保持功能等价(有测试用例保障)
57
- - [ ] 是否分阶段执行(可增量发布,每阶段独立验证)
58
- - [ ] 是否有回滚方案(每阶段独立可回滚)
59
- - [ ] 重构是否清理了遗留的待办占位和临时代码
60
- - [ ] 重构后性能是否有回归测试(基准对比)
61
- - [ ] 是否更新了相关文档和注释
@@ -1,53 +0,0 @@
1
- ---
2
- id: ka-procedure-重构流水线
3
- kind: guidance
4
- title: 重构流水线
5
- sync_policy: copy_to_project
6
- status: active
7
- triggers:
8
- - 代码重构
9
- - 模块拆分
10
- - 模式优化
11
- - 提取公共方法
12
- - 重构
13
- - refactor
14
- - 代码改善
15
- - 结构优化
16
- extra:
17
- name: refactor-pipeline
18
- type: procedure
19
- scope:
20
- - backend
21
- - frontend
22
- products:
23
- - '*'
24
- lifecycle_status: active
25
- version: 1.1.0
26
- last_reviewed: '2026-06-01'
27
- domain:
28
- - build
29
- - verify
30
- verification_layer: L2
31
- stage: build
32
- owner_mechanism: mc-task-context-lifecycle
33
- ---
34
-
35
- # 重构管线
36
-
37
- ## 第1步:现状分析
38
- 识别当前代码的坏味道和重构目标。量化现状(圈复杂度、方法行数、类职责数)。确定重构类型(提取方法/提取类/内联/重命名/搬移/模式替换)。
39
- 模版:重构方案.md
40
- 产出保存到:docs/review/\*\*/*审查*.md
41
- 工具:sf_analyze
42
-
43
- ## 第2步:方案设计
44
- 定义重构目标和 Before/After 对比。评估影响范围(哪些模块/接口/测试受影响)。识别风险点(破坏性变更风险等级、回归风险)。制定分步执行计划(每步可独立验证)。
45
- 产出保存到:docs/architecture/01-架构设计文档.md
46
-
47
- ## 第3步:分步实施
48
- 按计划逐步执行重构,每步完成后运行测试确认无回归。禁止一次改多步再验证。保持测试始终可通过(绿色),如需修改测试先确认测试本身正确。
49
- 工具:sf_work action=act
50
-
51
- ## 第4步:验证验收
52
- 执行全量构建和测试。代码审查重点关注:行为等价性(重构不改变外部行为)、接口兼容性、性能影响。学习记录(重构模式、发现的设计问题)。
53
- 工具:sf_work action=verify, sf_gate
@@ -1,94 +0,0 @@
1
- ---
2
- id: 防御性编码
3
- kind: guidance
4
- title: 防御性编码
5
- sync_policy: copy_to_project
6
- status: active
7
- triggers:
8
- - 防御性编码
9
- - 降级策略
10
- - 重试超时
11
- - 事务保护
12
- - 异常处理
13
- - defensive coding
14
- extra:
15
- name: defensive-coding
16
- type: constraint
17
- scope:
18
- - '*'
19
- domain: build
20
- lifecycle_status: active
21
- version: 1.2.0
22
- last_reviewed: '2026-06-04'
23
- products:
24
- - '*'
25
- verification_layer: L2
26
- stage: build
27
- owner_mechanism: mc-existing-system-review
28
- ---
29
-
30
- # 防御性编码规则
31
-
32
- ## DEF-OLD-01: 接口降级策略
33
- id: DEF-OLD-01
34
- name: 接口降级策略
35
- severity: error
36
- check_type: deterministic
37
- check_hint: 老系统接口调用必须有降级/兜底策略
38
- description: 必须对老系统接口调用添加降级策略:返回兜底数据或走老逻辑。降级方案须在代码中有明确注释说明触发条件和兜底行为。
39
-
40
- ## DEF-OLD-02: 重试与超时
41
- id: DEF-OLD-02
42
- name: 重试与超时
43
- severity: error
44
- check_type: deterministic
45
- check_hint: 重试次数≤3,超时时间必须明确设置
46
- description: 老系统接口调用必须有重试策略:最多 3 次,指数退避。超时设置必须明确(不得使用无限超时或默认超时)。
47
-
48
- ## DEF-EXT-01: try-catch 包裹
49
- id: DEF-EXT-01
50
- name: try-catch 包裹
51
- severity: error
52
- check_type: deterministic
53
- check_hint: 所有外部服务调用必须有 try-catch 包裹
54
- description: 所有外部服务调用(HTTP/RPC/MQ/SDK)必须有 try-catch 包裹,不得将外部异常直接传播到业务逻辑层。
55
-
56
- ## DEF-EXT-02: 降级方案
57
- id: DEF-EXT-02
58
- name: 降级方案
59
- severity: warning
60
- check_type: semantic
61
- check_hint: 不可控的外部依赖必须有降级方案
62
- description: 不可控的外部依赖(第三方 API、共享服务)必须有降级方案:返回缓存数据、走备用通道、或标记为降级状态。
63
-
64
- ## DEF-DATA-01: 事务保护
65
- id: DEF-DATA-01
66
- name: 事务保护
67
- severity: error
68
- check_type: deterministic
69
- check_hint: 写操作必须使用事务
70
- description: 涉及多表写入、状态变更、金额操作等写操作必须使用事务保护。事务边界须明确,不得跨 HTTP 调用。
71
-
72
- ## DEF-DATA-02: 分批处理
73
- id: DEF-DATA-02
74
- name: 分批处理
75
- severity: warning
76
- check_type: semantic
77
- check_hint: 批量操作必须有分页/分批处理
78
- description: 批量操作(批量导入、批量更新、批量删除)必须有分页/分批处理机制,避免单次操作数据量过大导致内存溢出或锁等待。
79
-
80
- ## DEF-ERR-01: 禁止空 catch
81
- id: DEF-ERR-01
82
- name: 禁止空 catch
83
- severity: error
84
- check_type: deterministic
85
- check_hint: grep -E 'catch\s*\([^)]*\)\s*\{\s*\}' 匹配 0
86
- description: 不允许空 catch 块。catch 块中必须至少包含日志记录或明确的忽略注释。
87
-
88
- ## DEF-ERR-02: 错误传播
89
- id: DEF-ERR-02
90
- name: 错误传播
91
- severity: error
92
- check_type: semantic
93
- check_hint: 非预期错误必须向上传播,不得吞异常
94
- description: 错误日志必须包含上下文信息(traceId、请求参数、操作类型)。非预期错误必须向上传播,不得在中间层吞异常后返回默认值。
@@ -1,67 +0,0 @@
1
- ---
2
- id: ka-procedure-集成验证流程
3
- kind: guidance
4
- title: 集成验证
5
- sync_policy: copy_to_project
6
- status: active
7
- triggers:
8
- - 集成测试
9
- - 集成验证
10
- - E2E测试
11
- - 端到端验证
12
- - 联调测试
13
- - integration test
14
- - E2E
15
- extra:
16
- name: integration-verification
17
- type: procedure
18
- scope:
19
- - backend
20
- - frontend
21
- products:
22
- - '*'
23
- lifecycle_status: active
24
- version: 1.2.0
25
- last_reviewed: '2026-06-04'
26
- domain:
27
- - build
28
- - verify
29
- verification_layer: L2
30
- stage: build
31
- owner_mechanism: mc-verifier
32
- ---
33
-
34
- ## 适用场景
35
- 跨 API、页面交互和业务流的增量集成测试,要求真实运行时证据。适用于部署后的端到端验证。
36
-
37
- ## 步骤
38
- 1. 分析变更影响:哪些接口、页面、DDL、菜单受影响
39
- 2. 发现服务依赖和启动顺序
40
- 3. 构建部署最新代码,验证构建产物新鲜度
41
- 4. 收集运行时证据:API 动态验证、页面快照、控制台、网络请求
42
- 4a. Evidence 级别分类:
43
- - E0(不可接受):dry-run/静态分析/AI 摘要/无运行时证据
44
- - E1(最低要求):API 响应日志/测试输出报告/控制台日志
45
- - E2(推荐):端到端浏览器验证截图 + API 响应 + 数据库状态验证
46
- 端到端核心业务流程验证(步骤 5)必须达到 E2 级别。
47
- API 动态验证(步骤 4)至少达到 E1 级别。
48
- 5. 端到端流程验证:从浏览器页面出发,不绕过前端直接调后端
49
- 6. DDL 迁移必须在浏览器/API 测试前应用到运行数据库
50
- 7. 发现缺陷时:先诊断再修复,修复后重新构建再验证
51
- 8. 构建覆盖矩阵:接口 × 页面交互 × 业务流三维覆盖
52
- 9. 产出偏差报告:每个缺口映射到返回阶段
53
-
54
- ## 检查点
55
- - [ ] 变更影响分析仅覆盖本次变更范围
56
- - [ ] 构建产物新鲜度已验证
57
- - [ ] API 动态验证和浏览器运行时验证均完成
58
- - [ ] 端到端流程从浏览器页面出发完成
59
- - [ ] 菜单变更验证了角色可见性、路由可达、API 可调
60
- - [ ] 覆盖矩阵达标,偏差报告指定返回阶段
61
-
62
- ## 注意事项
63
- - 禁止绕过前端直接调后端 API 做业务流测试
64
- - 禁止用 SQL 直接写业务测试数据(使用页面操作或业务 API)
65
- - 禁止在过期构建上测试(新鲜度检查失败必须重新构建)
66
- - 禁止硬编码测试凭据
67
- - 禁止接受 dry-run/静态分析/AI 摘要作为通过证据