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,105 +1,74 @@
1
1
  ---
2
- id: ka-procedure-调试排查流程
2
+ id: ka-guidance-调试排查
3
3
  kind: guidance
4
4
  title: 调试排查
5
5
  sync_policy: copy_to_project
6
6
  status: active
7
7
  triggers:
8
+ - bug
8
9
  - 调试
10
+ - 排查
11
+ - 报错
12
+ - 异常
13
+ - 失败
9
14
  - 排障
10
- - 排查问题
11
- - bug定位
12
- - 问题排查
13
- - 线上排查
14
- - 异常排查
15
- - 错误定位
15
+ - 定位
16
16
  - 日志排查
17
17
  - 缺陷修复
18
- - Bug修复
19
- - 问题修复
20
- - 异常修复
21
- - 错误修复
22
- - bug fix
23
- - 缺陷处理
18
+ - bugfix
24
19
  extra:
25
20
  name: debug-investigation
26
- type: procedure
27
21
  scope:
28
- - backend
29
- - frontend
22
+ - '*'
30
23
  products:
31
24
  - '*'
25
+ type: procedure
32
26
  lifecycle_status: active
33
- version: 1.2.0
34
- last_reviewed: '2026-06-04'
35
- domain:
36
- - build
37
- - verify
27
+ version: 1.0.0
28
+ last_reviewed: '2026-06-17'
38
29
  verification_layer: L2
39
30
  stage: build
31
+ domain: build
40
32
  owner_mechanism: mc-verifier
41
33
  ---
42
34
 
43
- ## 适用场景
44
- 功能异常、性能问题、线上报错等需要定位根因的场景。遵循「先观察后假设再验证」的原则。
35
+ # 调试排查:出了 bug 怎么定位根因
36
+
37
+ > 吸收旧的「调试排查」「Bug分析」「调试方法论」「全栈流程修复」「新老逻辑比对日志」。
38
+ > [[工程执行总纲]] 思考先行:禁止只修表象不找根因。
39
+
40
+ ## 第一步:稳定复现
41
+
42
+ - 先找到稳定复现路径(无复现=瞎改)
43
+ - 记录复现步骤、环境、输入、预期 vs 实际
44
+
45
+ ## 第二步:定位根因(不是表象)
45
46
 
46
- ## 四阶段调试法
47
- 1. **观察阶段**:获取具体操作步骤、输入数据、环境信息,确认可复现
48
- 2. **假设阶段**:根据观察提出一个假设,不要同时提出多个假设
49
- 3. **验证阶段**:设计最小实验验证假设,记录结果(包括被否定的假设)
50
- 4. **修复阶段**:确认根因后编写最小修复 + 回归测试
47
+ - 读日志/堆栈,追到真实失败点
48
+ - 区分:症状(报什么)vs 根因(为什么报)
49
+ - 二分法/日志插桩缩小范围
50
+ - 靠证据,不靠猜([[证据驱动与反幻觉]])
51
51
 
52
- ## 步骤
53
- 1. 复现问题:获取具体操作步骤、输入数据、环境信息
54
- 2. 确定影响范围:是全部用户还是特定条件?是偶发还是必现?
55
- 3. 查看日志:根据时间窗口搜索 traceId,查看完整请求链路日志
56
- 4. 查看监控:接口响应时间、错误率、资源使用(CPU/内存/磁盘)
57
- 5. 定位代码:根据日志中的异常堆栈定位到具体文件和方法
58
- 6. 分析根因:区分是代码 Bug、配置错误、数据异常还是环境问题
59
- 7. 验证假设:在本地或测试环境复现并验证根因(一次只验证一个假设)
60
- 8. 编写最小修复:修复范围只覆盖确认的根因,禁止顺手改其他代码
61
- 9. 使用 RED-GREEN 验证:回退修复 → 确认失败 → 恢复修复 → 确认通过
62
- 10. 添加回归测试(防止同类问题再发生)
52
+ ## 第三步:最小修复
63
53
 
64
- ## 调试报告格式
54
+ - 只改根因点,不扩大范围([[工程执行总纲]] 精准修改)
55
+ - 改老系统先比对新老逻辑差异
56
+ - 修复限于同一上下文;跨模块回到任务拆解
65
57
 
66
- ### 基本信息
67
- | 项目 | 内容 |
68
- |------|------|
69
- | 问题描述 | <!-- 现象描述 --> |
70
- | 影响范围 | <!-- 用户/模块/接口 --> |
71
- | 复现条件 | <!-- 步骤 --> |
72
- | 严重程度 | P0/P1/P2 |
58
+ ## 第四步:回归测试
73
59
 
74
- ### 调试过程
75
- | 阶段 | 假设 | 验证方法 | 结果 |
76
- |------|------|---------|------|
77
- | 观察 | — | <!-- 日志/监控 --> | <!-- 发现 --> |
78
- | 假设 1 | <!-- 假设内容 --> | <!-- 验证方法 --> | 确认/否定 |
79
- | 假设 2 | <!-- 假设内容 --> | <!-- 验证方法 --> | 确认/否定 |
60
+ - 先写复现测试(证明 bug 存在)→ 修复后证明 bug 消失
61
+ - 跑相关测试,确认没引入新问题
80
62
 
81
- ### 修复方案
82
- | 修改文件 | 修改内容 | 关联切片 |
83
- |---------|---------|---------|
84
- | <!-- 文件路径 --> | <!-- 修改说明 --> | SLC-{模块}-{序号} |
63
+ ## 第五步:防复发
85
64
 
86
- ### RED-GREEN 验证
87
- - [ ] 回退修复后测试失败(RED)
88
- - [ ] 恢复修复后测试通过(GREEN)
65
+ - 补测试守住这个修复
66
+ - 想想同类问题会不会在别处出现(举一反三)
67
+ - 必要时沉淀成规则/检查
89
68
 
90
- ## 检查点
91
- - [ ] 问题可稳定复现(或记录了偶现条件)
92
- - [ ] 日志中有 traceId 可追踪完整链路
93
- - [ ] 调试过程有假设-验证记录
94
- - [ ] 根因已确认而非停留在表象
95
- - [ ] 修复范围仅限确认的根因
96
- - [ ] 修复包含回归测试
69
+ ## 禁止
97
70
 
98
- ## 注意事项
99
- - 不要在没有复现的情况下直接修改代码
100
- - 日志排查优先使用 traceId,避免大海捞针
101
- - 性能问题优先看慢查询日志和接口耗时
102
- - 同一现象修复失败 3 次后停止猜测,重新审视假设,考虑是否为架构问题
103
- - 禁止通过删除断言、增加 sleep、降低覆盖率、增加 mock 来制造通过
104
- - 调试修复须遵守 SED-04(禁止跨任务修改),修复范围仅限当前切片涉及文件
105
- - 修复范围超出当前切片涉及文件时,须触发重规划(参见切片计划 §7 动态重规划)
71
+ - 不复现就改(违规,改了也不知道对不对)
72
+ - 只修表象不找根因(违规,bug 会回来)
73
+ - 改一大片"可能相关"的代码(违规,扩大风险)
74
+ - 修复后不写回归测试(违规,无法证明修好)
@@ -0,0 +1,68 @@
1
+ ---
2
+ id: ka-guidance-重构方法
3
+ kind: guidance
4
+ title: 重构方法
5
+ sync_policy: copy_to_project
6
+ status: active
7
+ triggers:
8
+ - 重构
9
+ - refactor
10
+ - 解耦
11
+ - 耦合
12
+ - 重构方案
13
+ - 改善代码
14
+ - 抽象
15
+ extra:
16
+ name: refactoring-method
17
+ scope:
18
+ - '*'
19
+ products:
20
+ - '*'
21
+ type: procedure
22
+ lifecycle_status: active
23
+ version: 1.0.0
24
+ last_reviewed: '2026-06-17'
25
+ verification_layer: L2
26
+ stage: build
27
+ domain: build
28
+ owner_mechanism: mc-code-maintainability-observability-contract
29
+ ---
30
+
31
+ # 重构方法:怎么改老代码不翻车
32
+
33
+ > 吸收旧的「重构方案」「重构流水线」「耦合检测」「OOD设计摘要」。
34
+
35
+ ## 何时该重构(先想清楚)
36
+
37
+ - 代码确实难以理解/修改/扩展,且有测试保护
38
+ - 重构服务于当前目标,不是"看着不爽"
39
+
40
+ ## 何时不该重构
41
+
42
+ - 没有测试覆盖的代码(先补测试)
43
+ - 跟当前任务无关的顺手重构([[工程执行总纲]] 精准修改:禁止)
44
+ - 需求紧急、没有回滚余量时
45
+
46
+ ## 重构步骤
47
+
48
+ 1. **先有测试**:覆盖现有行为(重构后行为不变是验证标准)
49
+ 2. **小步前进**:每步可编译可测试,不一次性大改
50
+ 3. **每步验证**:跑测试,绿了再下一步
51
+ 4. **新老逻辑比对**(改老系统):行为一致才算通过
52
+
53
+ ## 解耦判断
54
+
55
+ - 检测高耦合点(模块间循环依赖、上帝对象、散弹式修改)
56
+ - 用接口/事件/适配器解耦,但不过度抽象([[工程执行总纲]] 简单优先)
57
+ - 引入新抽象前说明必要性
58
+
59
+ ## 禁止
60
+
61
+ - 无测试就重构(违规,无法验证行为不变)
62
+ - 顺手重构无关模块(违规)
63
+ - 大爆炸式重构(违规,无法回滚)
64
+ - 为重构而抽象(违规,增加复杂度)
65
+
66
+ ## 验证
67
+
68
+ 重构后必须给出:测试全绿 + 行为不变的证据(新老比对/覆盖率不降)。
@@ -12,8 +12,8 @@ extra:
12
12
  - frontend
13
13
  products:
14
14
  - '*'
15
- version: 1.2.0
16
- last_reviewed: '2026-06-04'
15
+ version: 2.0.0
16
+ last_reviewed: '2026-06-17'
17
17
  type: artifact
18
18
  domain: design
19
19
  stage: design
@@ -22,29 +22,33 @@ extra:
22
22
 
23
23
  # API 接口规格文档
24
24
 
25
+ > **产物定位**:涉及前后端接口对接时产出(按需)。把接口契约先于实现定清楚,避免前端等后端。
26
+ > **核心纪律**:契约先行([[编码纪律]]);每个 endpoint 有验收场景 + 验证证据([[证据驱动与反幻觉]])。
27
+ > **完成判定**:见文末,每个 endpoint 须满足。
28
+
25
29
  OpenAPI 权威路径: `docs/api/openapi.yaml`
26
30
 
27
31
  ## Endpoint: `METHOD /api/v1/resource`
28
32
 
29
- > **接口编号**: `DD-A01`(每个 endpoint 唯一,供切片计划/代码审查引用,cross_validation 据此校验一致性+覆盖)
30
- > **关联需求**: `REQ-001`(本接口实现的需求编号,供 cross_validation 校验与需求分析一致;多个用 `/` 分隔)
33
+ > **接口编号**: `DD-A01`(每个 endpoint 唯一,供切片计划/代码审查引用)
34
+ > **关联需求**: `REQ-001`(供 cross_validation 校验与需求一致;多个用 `/` 分隔)
31
35
 
32
36
  ### 基本信息 [Always — 每个 endpoint 必填]
33
37
 
34
38
  | endpoint_id | 用途 | 调用端 | 权限 | 幂等 | 限流 | 副作用 |
35
39
  |-------------|------|--------|------|------|------|--------|
36
40
 
37
- ### 请求 Header 字段 [Ask first — 有认证/自定义 Header 时必填]
41
+ ### 请求 Header 字段 [有认证/自定义 Header 时必填]
38
42
 
39
43
  | 字段路径 | 类型 | 必填 | 格式/约束 | 数据映射 | 说明 | 示例 |
40
44
  |----------|------|------|-----------|----------|------|------|
41
45
 
42
- ### 请求 Path / Query 字段 [Ask first — 有路径/查询参数时必填]
46
+ ### 请求 Path / Query 字段 [有路径/查询参数时必填]
43
47
 
44
48
  | 字段路径 | 类型 | 必填 | 默认值 | 格式/约束 | 说明 | 示例 |
45
49
  |----------|------|------|--------|-----------|------|------|
46
50
 
47
- ### 请求体字段 [Ask first — 有请求体时必填]
51
+ ### 请求体字段 [有请求体时必填]
48
52
 
49
53
  | 字段路径 | 类型 | 必填 | 可空 | 枚举/格式/校验 | 数据映射 | 说明 | 示例 |
50
54
  |----------|------|------|------|----------------|----------|------|------|
@@ -64,32 +68,31 @@ OpenAPI 权威路径: `docs/api/openapi.yaml`
64
68
  | 场景 | 输入 | 预期响应 | 数据/状态变化 | 验证证据 |
65
69
  |------|------|----------|---------------|----------|
66
70
 
67
- ### 枚举值定义 [Ask first — 有枚举字段时必填]
71
+ ### 枚举值定义 [有枚举字段时必填]
68
72
 
69
73
  | 枚举名 | 值 | 含义 |
70
74
  |--------|------|------|
71
75
 
72
- ### 页面交互映射 [Ask first — 前端直接调用的接口必填]
76
+ ### 页面交互映射 [前端直接调用的接口必填]
73
77
 
74
78
  | 页面操作 | 触发接口 | 加载状态 | 成功行为 | 失败行为 |
75
79
  |---------|---------|---------|---------|---------|
76
80
 
77
- ### 接口规范检查 [Always — 每个 endpoint 必填]
78
-
79
- - [ ] 是否定义了接口版本号和演进策略(如 /api/v1/)
80
- - [ ] 是否有幂等设计(写接口需标注幂等键或唯一约束)
81
- - [ ] 错误码体系是否完整(业务码 + HTTP 状态码双映射)
82
- - [ ] 是否有分页参数上限限制(防止恶意大翻页)
83
- - [ ] 是否有接口限流策略(QPS/并发上限)
84
- - [ ] 批量操作是否有数量上限(≤ 500 条)
85
-
86
- ### AI Agent 格式校验 [Always — 每个 endpoint 必填]
87
-
88
- - [ ] 每个 endpoint_id 全局唯一且遵循命名规范({资源}-{动作})
89
- - [ ] 所有 数据映射 字段已精确到 表名.字段名 格式(禁止仅写表名)
90
- - [ ] 所有 类型 字段使用标准类型(string/integer/number/boolean/array/object/date/datetime/enum)
91
- - [ ] 所有 格式/约束 字段使用标准约束格式(min:0,max:100 或 pattern:regex)
92
- - [ ] 错误映射表中每个 HTTP 状态码至少对应一个业务码
93
- - [ ] 验收场景表中每行必须包含 验证证据(不得为空)
94
- - [ ] 枚举值定义覆盖了所有字段中出现的枚举类型
95
- - [ ] 页面交互映射覆盖了所有涉及前端调用的接口
81
+ ## 接口规范检查
82
+
83
+ - [ ] 接口有版本号和演进策略(如 /api/v1/)
84
+ - [ ] 写接口有幂等设计(幂等键或唯一约束)
85
+ - [ ] 错误码体系完整(业务码 + HTTP 状态码双映射)
86
+ - [ ] 分页参数有上限(防恶意大翻页)
87
+ - [ ] 接口有限流策略(QPS/并发上限)
88
+ - [ ] 批量操作有数量上限(≤ 500 条)
89
+
90
+ ## 完成判定(每个 endpoint 须满足)
91
+
92
+ - [ ] endpoint_id 全局唯一且遵循命名规范({资源}-{动作})
93
+ - [ ] 所有 数据映射 字段精确到 表名.字段名(禁止仅写表名)
94
+ - [ ] 所有 类型 用标准类型(string/integer/number/boolean/array/object/date/datetime/enum)
95
+ - [ ] 错误映射表每个 HTTP 状态码至少对应一个业务码
96
+ - [ ] 每个验收场景有验证证据(不得为空)
97
+ - [ ] 枚举值定义覆盖所有枚举字段
98
+ - [ ] 涉及前端调用的接口有页面交互映射
@@ -2,100 +2,70 @@
2
2
  id: design-enforced
3
3
  kind: enforced
4
4
  gate: design-gate
5
- title: design阶段强制检查清单
5
+ title: design 阶段强制检查清单
6
6
  sync_policy: engine_only
7
7
  status: active
8
+ extra:
9
+ owner_mechanism: mc-stage-gate-engine
8
10
  checks:
9
- - id: ARC-01
10
- executor: regex_pattern_scan
11
- rule: "Controller 禁止包含业务逻辑(计算/校验等应下沉 Service)"
12
- severity: error
13
- check_type: deterministic
14
- pattern: '/\bclass\s+\w*Controller\b[\s\S]{0,500}\b(if|for|while|calculate|compute)\s*\(/'
15
- languages: [java]
16
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无 Controller 含业务逻辑命中)"]
17
- gate: verify-gate
18
- target: "self"
19
- - id: ARC-02
20
- executor: regex_pattern_scan
21
- rule: "禁止 Entity 直接暴露给外部接口,必须用 DTO"
22
- severity: error
23
- check_type: deterministic
24
- pattern: '/\bpublic\s+\w*Entity\b\s+\w+\s*\(/'
25
- languages: [java]
26
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无 Entity 直接暴露命中)"]
27
- gate: verify-gate
28
- target: "self"
29
- - id: ARC-03
30
- executor: regex_pattern_scan
31
- rule: "写操作(save/create/update/delete)必须有 @Transactional"
32
- severity: error
33
- check_type: deterministic
34
- pattern: '/\.(save|insert|update|delete|remove|create)\s*\(/'
35
- languages: [java]
36
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无写操作缺事务命中)"]
37
- gate: verify-gate
38
- target: "self"
39
- - id: ARC-04
40
- executor: regex_pattern_scan
41
- rule: "禁止直接 new Service/Repository/Mapper/Manager,必须依赖注入"
42
- severity: error
11
+ # —— 产物结构完整性(document_structure,逼产物质量)——
12
+ - id: REQ-STRUCT
13
+ executor: document_structure
43
14
  check_type: deterministic
44
- pattern: '/\bnew\s+\w*(Service|Repository|Repo|Dao|Mapper|Manager)\s*\(/'
45
- languages: [java]
46
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无直接 new 服务对象命中)"]
47
- gate: verify-gate
48
- target: "self"
49
- - id: ARC-06
50
- executor: regex_pattern_scan
51
- rule: "前端 API 调用必须封装到 service 层,禁止组件内直接 fetch/axios"
52
15
  severity: error
16
+ gate: design-gate
17
+ required_artifact: 需求分析模版
18
+ rule: "需求分析文档须含「根本目标(fundamental_need)」「功能点清单」「非功能需求」章节"
19
+ evidence_required:
20
+ - "docs/context/需求分析.md"
21
+ target: self
22
+ - id: ARCH-STRUCT
23
+ executor: document_structure
53
24
  check_type: deterministic
54
- pattern: '/\b(fetch|axios)\s*\(/'
55
- languages: [ts]
56
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无组件直接 API 调用命中)"]
57
- gate: verify-gate
58
- target: "self"
59
- - id: ARC-07
60
- executor: regex_pattern_scan
61
- rule: "禁止 @Autowired + @Lazy 循环依赖"
62
25
  severity: error
26
+ gate: design-gate
27
+ required_artifact: 架构设计模版
28
+ rule: "架构设计文档须含「约束条件」「安全架构」「风险与回滚」章节"
29
+ evidence_required:
30
+ - "docs/architecture/01-架构设计文档.md"
31
+ target: self
32
+ - id: DB-STRUCT
33
+ executor: document_structure
63
34
  check_type: deterministic
64
- pattern: '/@Autowired[\s\S]{0,50}@Lazy|@Lazy[\s\S]{0,50}@Autowired/'
65
- languages: [java]
66
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无循环依赖命中)"]
67
- gate: verify-gate
68
- target: "self"
69
- - id: ARC-08
70
- executor: regex_pattern_scan
71
- rule: "Service 层禁止直接操作 HttpServletRequest/Response"
72
35
  severity: error
36
+ gate: design-gate
37
+ required_artifact: 数据库设计文档模版
38
+ rule: "数据库设计文档须含「实体与关系」「表字段与敏感级别」章节"
39
+ evidence_required:
40
+ - "docs/design/01-数据库设计文档.md"
41
+ target: self
42
+ - id: API-STRUCT
43
+ executor: document_structure
73
44
  check_type: deterministic
74
- pattern: '/\bHttpServletRequest\b|\bHttpServletResponse\b/'
75
- languages: [java]
76
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无 Service 操作 HttpServlet 命中)"]
77
- gate: verify-gate
78
- target: "self"
45
+ severity: warning
46
+ gate: design-gate
47
+ required_artifact: API接口规格文档模版
48
+ rule: "API 接口规格文档须含「响应体字段」「错误与副作用」「验收场景」核心 section"
49
+ evidence_required:
50
+ - "docs/design/02-API接口规格文档.md"
51
+ target: self
52
+ # —— 设计主观规则(semantic,advisory 不阻断,随 Reflexion 反馈供 AI 评判)——
79
53
  - id: DES-C-REVIEW
80
54
  executor: semantic
81
- rule: "客户端 AI 评判设计主观规则(流程约束类,不可代码确定性判定):① 每条架构决策须有对应 ADR,禁止口头决策不留记录(ADR-HARD-01)② ADR 状态变更须经用户确认,Agent 不得自动变更(ADR-HARD-02)③ 跳过决策研讨须用户明确声明,Agent 不得自行跳过(ADR-HARD-04)④ 技术选型须有 NFR 量化对比而非仅凭业界主流(ARCH-MOD-04)"
55
+ rule: "客户端 AI 评判设计主观规则:① 每条架构决策须有对应 ADR,禁止口头决策不留记录 ADR/重大选型状态变更须经用户确认,Agent 不得自动变更 技术选型须有依据(性能/成本/熟悉度)而非仅凭业界主流 改老系统须有兼容性分析与回滚方案"
82
56
  severity: info
83
57
  check_type: semantic
84
- evidence_required: ["LLM 语义评估结论(pending 标记,advisory 不阻断,随 Reflexion 反馈供客户端 AI 评判/重试)"]
58
+ evidence_required:
59
+ - "LLM 语义评估结论(pending 标记,advisory 不阻断,随 Reflexion 反馈供客户端 AI 评判/重试)"
85
60
  gate: design-gate
86
- target: "self"
61
+ target: self
87
62
  ---
88
63
 
89
64
  # design-gate 强制检查清单
90
65
 
91
- 8 条确定性检查。bridge 从此文件聚合。
66
+ design 阶段产物结构与决策质量检查。bridge 从此文件聚合。
67
+
68
+ - **REQ-STRUCT / ARCH-STRUCT / DB-STRUCT / API-STRUCT**:产物必含章节(document_structure,确定性)
69
+ - **DES-C-REVIEW**:决策有 ADR / 选型有依据 / 改老系统有回滚(semantic,advisory)
92
70
 
93
- 对应工程经验:
94
- - ARC-01
95
- - ARC-02
96
- - ARC-03
97
- - ARC-04
98
- - ARC-06
99
- - ARC-07
100
- - ARC-08
101
- - DES-C-REVIEW
71
+ > 代码层正则检查(Controller 不含业务逻辑、写操作须事务等 ARC-*)已迁至 build-gate,那里才是代码实现阶段的归属。
@@ -21,6 +21,7 @@ extra:
21
21
  products:
22
22
  - '*'
23
23
  lifecycle_status: active
24
+ priority: P0
24
25
  version: 1.1.0
25
26
  last_reviewed: '2026-06-01'
26
27
  domain:
@@ -0,0 +1,71 @@
1
+ ---
2
+ id: ka-guidance-兼容性与迁移评估
3
+ kind: guidance
4
+ title: 兼容性与迁移评估
5
+ sync_policy: copy_to_project
6
+ status: active
7
+ triggers:
8
+ - 迁移
9
+ - 兼容
10
+ - 老系统
11
+ - 重构
12
+ - brownfield
13
+ - 改造
14
+ - 遗留
15
+ - 升级
16
+ - 数据迁移
17
+ - 兼容性
18
+ extra:
19
+ name: compatibility-migration-assessment
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: design
30
+ domain: design
31
+ owner_mechanism: mc-existing-system-analysis
32
+ ---
33
+
34
+ # 兼容性与迁移评估:改老系统怎么不翻车
35
+
36
+ > 吸收旧的「兼容性检查」「迁移评估」「改造影响范围评估」「历史遗留雷区清单」。
37
+ > **何时用**:改造现有系统、数据迁移、schema 变更、技术栈升级时。
38
+
39
+ ## 第一步:摸清现状(证据先行)
40
+
41
+ - 现有系统行为:靠真实运行/日志/数据证明,不靠记忆猜测([[证据驱动与反幻觉]])
42
+ - 历史遗留雷区:标出脆弱点、无人敢动的代码、隐式契约
43
+
44
+ ## 第二步:迁移范围与影响面
45
+
46
+ | 变更项 | 影响模块 | 影响数据 | 调用方 | 兼容性风险 |
47
+ |--------|---------|---------|--------|-----------|
48
+
49
+ ## 第三步:兼容性分析
50
+
51
+ - **向后兼容**:老接口/数据/调用方是否还能用?破坏点在哪?
52
+ - **数据兼容**:老数据能否被新代码正确读取?是否需要迁移脚本?
53
+ - **灰度能力**:能否新老并存、按流量/租户灰度切换?
54
+
55
+ ## 第四步:回滚方案(必填)
56
+
57
+ - 每个变更能否独立回滚?
58
+ - 数据迁移是否可逆?回滚后数据一致性如何保证?
59
+ - 回滚触发条件 + 验证 SQL
60
+
61
+ ## 第五步:风险与验证
62
+
63
+ - 新老逻辑比对:关键路径行为是否一致(比对日志/双写比对)
64
+ - 爆炸半径控制:小切片推进([[切片规划]]),每片可独立回滚
65
+
66
+ ## 禁止
67
+
68
+ - 不摸现状就改老代码(凭记忆,违规)
69
+ - 破坏向后兼容却不标注影响面(违规)
70
+ - 数据迁移没有回滚脚本(违规)
71
+ - 大爆炸式改造(无灰度,违规)
@@ -0,0 +1,70 @@
1
+ ---
2
+ id: ka-guidance-决策与选型
3
+ kind: guidance
4
+ title: 决策与选型
5
+ sync_policy: copy_to_project
6
+ status: active
7
+ triggers:
8
+ - 选型
9
+ - 技术决策
10
+ - ADR
11
+ - 头脑风暴
12
+ - 方案对比
13
+ - 第一性原理
14
+ - 架构决策
15
+ - 候选方案
16
+ - 技术栈
17
+ - 权衡
18
+ extra:
19
+ name: decision-and-selection
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: design
30
+ domain: design
31
+ owner_mechanism: mc-decision-workshop
32
+ ---
33
+
34
+ # 决策与选型:怎么拍技术方案
35
+
36
+ > 吸收旧的「技术选型」「自主选型」「架构决策记录」「不确定时头脑风暴」「第一性原理推理」。
37
+ > **核心**:重大决策须经用户确认([[开发者宪法]]),选型须有依据而非凭主流([[证据驱动与反幻觉]])。
38
+
39
+ ## 选型流程
40
+
41
+ 1. **明确要解决什么问题**(第一性原理,不跟风)
42
+ 2. **检索基准**:通用知识 + 项目沉淀(sf_knowledge)+ 业界实践
43
+ 3. **列候选方案**:至少 2 个(含"不做/保持现状"选项)
44
+ 4. **多维对比**:性能 / 成本 / 团队熟悉度 / 生态 / 运维 / 风险
45
+ 5. **证伪循环**:主动找每个候选的失败场景,不是只找优点
46
+ 6. **给推荐 + 风险**:列冲突点、给推荐、请求用户确认
47
+ 7. **落 ADR**:决策必须有记录(标题/背景/选项/结论/原因)
48
+
49
+ ## ADR 格式(MADR)
50
+
51
+ ```markdown
52
+ # 决策标题:<一句话>
53
+ ## 背景:为什么要做这个决策
54
+ ## 选项:列出候选及各自权衡
55
+ ## 结论:选了什么
56
+ ## 原因:为什么选它、放弃了什么
57
+ ```
58
+
59
+ ## 何时头脑风暴(不确定时)
60
+
61
+ - 需求/方案有多种合理解读,且影响重大
62
+ - 列出多个方向,标注各自前提和风险
63
+ - 不要假装确定([[工程执行总纲]] 思考先行)
64
+
65
+ ## 禁止
66
+
67
+ - "业界主流所以选它"(无依据,违规)
68
+ - 只列一个候选(没有比较,违规)
69
+ - 决策不留 ADR(口头决策,违规)
70
+ - 未经用户确认就定重大架构选型(越权,违规)