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,97 +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: api-integration-plan
9
- scope:
10
- - backend
11
- - frontend
12
- products:
13
- - '*'
14
- lifecycle_status: active
15
- version: 1.3.0
16
- last_reviewed: '2026-06-04'
17
- type: artifact
18
- domain: design
19
- stage: design
20
- owner_mechanism: mc-generic-artifact
21
- ---
22
-
23
- # 接口对接方案
24
-
25
- ## 1. 第三方服务概况
26
- - 服务名称:
27
- - 服务类型(支付/通知/数据/认证):
28
- - SLA 可用性:
29
- - 环境地址:
30
- - 沙箱:
31
- - 预发:
32
- - 生产:
33
-
34
- ## 2. 认证方式
35
- - 认证类型(API Key / OAuth / Token / 签名):
36
- - 密钥管理方案(加密存储/环境变量/密钥轮换):
37
- - 密钥轮换周期:
38
-
39
- ## 3. 接口清单
40
- | 接口 | 方法 | 路径 | 用途 | 调用频率 |
41
- |------|------|------|------|---------|
42
- | | | | | |
43
-
44
- ## 4. 数据映射
45
- | 我方字段 | 我方类型 | 对方字段 | 对方类型 | 转换规则 |
46
- |---------|---------|---------|---------|---------|
47
- | | | | | |
48
-
49
- ## 5. 错误码映射
50
- | 对方错误码 | 含义 | 错误分类 | 我方错误码 | 用户提示 | 处理策略 |
51
- |-----------|------|---------|-----------|---------|---------|
52
-
53
- > 错误分类:transient(可重试:429/502/503/504/网络超时)/ permanent(不可重试:400/401/403/404/业务错误)
54
-
55
- ## 6. 容错策略
56
-
57
- ### 6.1 超时与重试
58
- | 参数 | 值 | 说明 |
59
- |------|---|------|
60
- | 连接超时 | | |
61
- | 请求超时 | | |
62
- | 最大重试次数 | | |
63
- | 退避策略 | | |
64
- | 重试抖动 | | |
65
-
66
- ### 6.2 熔断
67
- | 参数 | 值 | 说明 |
68
- |------|---|------|
69
- | 失败率阈值 | | |
70
- | 熔断等待时间 | | |
71
- | 半开探测次数 | | |
72
-
73
- ### 6.3 降级与限流
74
- - 降级方案:
75
- - 限流/配额:
76
-
77
- ## 7. Mock 方案
78
- - 本地 Mock 方式:
79
- - 沙箱对接计划:
80
-
81
- ## 8. 监控与告警
82
- | 监控指标 | 告警阈值 | 通知方式 |
83
- |---------|---------|---------|
84
- | 请求成功率 | | |
85
- | 响应延迟 p99 | | |
86
- | 熔断状态变化 | | |
87
- | 配额使用率 | | |
88
-
89
- ## 9. 沙箱验证证据(联调阶段填写)
90
-
91
- | 接口 | 沙箱环境 | 验证结果 | 响应示例(脱敏) | 差异记录 |
92
- |------|---------|---------|----------------|---------|
93
- | | | 通过/失败 | | 与文档的差异 |
94
-
95
- ## 10. Webhook/回调(如适用)
96
- | 事件 | 回调 URL | 验签方式 | 重试策略 |
97
- |------|---------|---------|---------|
@@ -1,56 +0,0 @@
1
- ---
2
- id: 改造影响范围评估
3
- kind: artifact
4
- title: 改造影响范围评估
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: refactoring-impact-assessment
9
- type: artifact
10
- scope:
11
- - '*'
12
- domain: design
13
- lifecycle_status: active
14
- stage: design
15
- owner_mechanism: mc-existing-system-artifact
16
- ---
17
-
18
- # 改造影响范围评估
19
-
20
- ## 1. 影响范围
21
-
22
- ### 1.1 代码影响
23
- | 模块 | 变更类型 | 影响评估 |
24
- |---|---|---|
25
- | <!-- 模块 --> | 新增/修改 | 高/中/低 |
26
-
27
- ### 1.2 数据库影响
28
- | 表 | 变更类型 | 数据迁移需求 |
29
- |---|---|---|
30
- | <!-- 表 --> | 新增/修改 | 是/否 |
31
-
32
- ### 1.3 接口影响
33
- | 接口 | 变更类型 | 向后兼容 |
34
- |---|---|---|
35
- | <!-- 接口 --> | 新增/修改/废弃 | 是/否 |
36
-
37
- ## 2. 风险评估
38
- - 整体风险等级:高/中/低
39
- - 关键风险点:
40
- - <!-- 风险描述 -->
41
-
42
- ### 2.5 隐式不变量
43
- > 老系统中的"不可见约定":未文档化的不变量、生产事件 workaround、伙伴系统假设。
44
- | # | 不变量描述 | 影响模块 | 破坏风险 | 验证方式 |
45
- |---|-----------|---------|---------|---------|
46
-
47
- ## 3. 约束条件
48
- <!-- 影响评估作为详细设计的约束条件 -->
49
-
50
- ### 3.5 分阶段验证计划(高风险项必须)
51
- | 风险项 | 验证阶段 | 验证方式 | 通过标准 | 回退策略 |
52
- |--------|---------|---------|---------|---------|
53
- | | 架构设计 | 依赖图分析 | 无未预期依赖 | 调整架构方案 |
54
- | | 详细设计 | 兼容性检查 | 向后兼容 | 修改接口设计 |
55
- | | 编码 | 新老逻辑比对 | 一致率 100% | 修复代码 |
56
- | | 联调 | 试运行熔断 | 错误率 <5% | 一键回滚 |
@@ -1,75 +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: database-change-plan
9
- scope:
10
- - backend
11
- products:
12
- - '*'
13
- lifecycle_status: active
14
- version: 1.2.0
15
- last_reviewed: '2026-06-04'
16
- type: artifact
17
- domain: design
18
- stage: design
19
- owner_mechanism: mc-generic-artifact
20
- ---
21
-
22
- # 数据库变更方案
23
-
24
- ## 1. 变更概述
25
- - 变更类型:加列 / 改列 / 删列 / 加索引 / 新建表 / 数据迁移
26
- - 涉及表:
27
- - 变更原因:
28
- - 变更风险等级:
29
- - 零停机策略:expand-contract / dual-write / shadow table / 直接变更
30
- - 大表迁移工具(>50万行时):
31
-
32
- ## 2. 变更详情
33
-
34
- ### 2.1 正向 DDL
35
- > 引用路径:`db/migrations/YYYYMMDDHHMMSS-描述.sql`
36
-
37
- ### 2.2 回滚 DDL
38
- > 引用路径:`db/migrations/YYYYMMDDHHMMSS-描述-rollback.sql`
39
-
40
- ### 2.3 数据映射(列重命名/类型变更/表拆分时)
41
- | 源表.源列 | 源类型 | 目标表.目标列 | 目标类型 | 转换规则 |
42
- |-----------|--------|-------------|---------|---------|
43
-
44
- ## 3. 兼容性分析
45
- | 层级 | 影响说明 | 兼容策略 |
46
- |------|---------|---------|
47
- | 数据库 | | |
48
- | ORM/查询层 | | |
49
- | API 契约 | | |
50
- | 前端展示 | | |
51
- | 导出/报表 | | |
52
- | ETL/CDC 管道 | | |
53
- | 定时任务/批处理 | | |
54
- | 向后兼容性 | | |
55
-
56
- ## 4. 数据迁移方案(如需要)
57
- - 数据量评估:
58
- - 分批策略:
59
- - 预计耗时:
60
- - 数据校验方式:行数 / 聚合 / 校验和 / 抽样
61
- - PII 敏感字段处理:
62
-
63
- ## 5. 执行计划
64
-
65
- ### 5.1 时间线
66
- | 阶段 | 时间点 | 操作 |
67
- |------|-------|------|
68
-
69
- ### 5.2 回滚触发条件
70
- | 指标 | 阈值 | 动作 |
71
- |------|------|------|
72
-
73
- ### 5.3 监控指标
74
- | 指标 | 告警阈值 |
75
- |------|---------|
@@ -1,49 +0,0 @@
1
- ---
2
- id: 数据血缘图
3
- kind: artifact
4
- title: 数据血缘图
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: data-lineage-diagram
9
- type: artifact
10
- scope:
11
- - '*'
12
- domain: design
13
- lifecycle_status: active
14
- stage: design
15
- owner_mechanism: mc-existing-system-artifact
16
- ---
17
-
18
- # 全链路数据血缘图
19
-
20
- ## 1. 概述
21
- <!-- 数据血缘图的整体说明 -->
22
-
23
- ## 2. 接口入口
24
- <!-- 从外部调用的接口入口列表 -->
25
-
26
- ## 3. 服务调用链
27
-
28
- ### 3.1 <!-- 接口名称 -->
29
- <!-- 接口 → 服务A → 服务B → 数据库的完整映射 -->
30
-
31
- **调用链:**
32
- 接口入口 → <!-- 服务 --> → <!-- 服务 --> → <!-- 数据库表 -->
33
-
34
- ## 4. 数据库读写映射
35
-
36
- ### 4.1 <!-- 表名 -->
37
-
38
- | 字段 | 读/写 | 来源接口 | 来源服务 |
39
- |---|---|---|---|
40
- | <!-- 字段名 --> | R/W | <!-- 接口 --> | <!-- 服务 --> |
41
-
42
- ## 5. 覆盖验证
43
-
44
- - [ ] 所有受影响接口已在 §2 中列出
45
- - [ ] 所有服务调用链已追踪到数据库读写
46
- - [ ] 数据库读写映射覆盖所有受影响表
47
- - Evidence: 接口覆盖率 = 已覆盖接口数 / 受影响接口总数
48
-
49
- > 接口覆盖率须为 100%。受影响接口列表来源:阶段 1 产出增量边界界定文档 §3 受影响接口。
@@ -1,49 +0,0 @@
1
- ---
2
- id: ka-pattern-accessibility
3
- kind: knowledge
4
- title: 无障碍
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: accessibility
9
- scope:
10
- - frontend
11
- products:
12
- - '*'
13
- lifecycle_status: active
14
- version: 1.1.0
15
- last_reviewed: '2026-06-01'
16
- type: knowledge
17
- domain:
18
- - build
19
- - design
20
- verification_layer: L2
21
- stage: design
22
- owner_mechanism: mc-frontend-pattern
23
- ---
24
-
25
- ## 决策规则
26
- - 表单 input 必须关联 label(htmlFor/id 或 aria-labelledby),禁止无标签输入框
27
- - 按钮和链接必须有可识别文本或 aria-label,禁止纯图标按钮无文字说明
28
- - 页面必须支持键盘导航(Tab 序列、Enter/Space 触发),焦点顺序符合视觉逻辑
29
- - 动态内容更新必须使用 aria-live 区域通知屏幕阅读器
30
- - 颜色对比度必须满足 WCAG AA 标准(文本 4.5:1,大文本 3:1)
31
- - 图标按钮必须提供 aria-label 或 tooltip,图标作为装饰时使用 aria-hidden="true"
32
- - 错误提示必须通过 aria-describedby 关联到对应表单字段
33
- - 所有交互元素必须有可访问的名称(aria-label 或关联 label),屏幕阅读器可识别
34
- - 颜色对比度必须满足 WCAG 2.1 AA 标准(正文 ≥ 4.5:1,大文本 ≥ 3:1)
35
- - 所有功能必须支持键盘操作(Tab 导航 + Enter/Space 触发),不能仅依赖鼠标
36
- - 表单必须有明确的错误提示和关联(aria-describedby),不能只用颜色标识错误
37
- - 图片/图标必须有替代文本(alt 属性),装饰性图片使用 alt=""
38
- - 页面标题(title)和标题层级(h1-h6)必须语义正确,便于辅助导航
39
-
40
- ## 验收项
41
- - [AC-01] 表单字段有关联 label
42
- - [AC-02] 按钮和链接有可识别文本
43
- - [AC-03] 页面支持键盘导航
44
- - [AC-04] 颜色对比度满足 WCAG AA
45
- - [AC-05] 交互元素有 aria-label
46
- - [AC-06] 颜色对比度符合 WCAG AA
47
- - [AC-07] 功能支持键盘操作
48
- - [AC-08] 表单错误有关联提示
49
- - [AC-09] 图片有替代文本
@@ -1,53 +0,0 @@
1
- ---
2
- id: ka-artifact_template-adr
3
- kind: artifact
4
- title: 架构决策记录
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: adr-template
9
- type: artifact
10
- domain: design
11
- lifecycle_status: active
12
- version: 1.2.0
13
- last_reviewed: '2026-06-04'
14
- scope:
15
- - backend
16
- - frontend
17
- products:
18
- - '*'
19
- stage: design
20
- owner_mechanism: mc-generic-artifact
21
- ---
22
-
23
- # ADR(架构决策记录)
24
-
25
- > **根本目标引用**:本产物的 `fundamental_need` 见需求分析文档 §1.3。若未声明,引用审查规则 FP-01。
26
-
27
- ## 决策标题
28
- <!-- 简短描述本次架构决策 -->
29
-
30
- ## 背景
31
- <!-- 为什么需要做这个决策?当前的架构约束、业务需求、技术债务是什么? -->
32
-
33
- ## 选项
34
-
35
- ### 选项 A: <!-- 选项名称 -->
36
- - **描述:** <!-- 简述方案 -->
37
- - **优点:**
38
- -
39
- - **缺点:**
40
- -
41
-
42
- ### 选项 B: <!-- 选项名称 -->
43
- - **描述:** <!-- 简述方案 -->
44
- - **优点:**
45
- -
46
- - **缺点:**
47
- -
48
-
49
- ## 结论
50
- <!-- 最终选择哪个选项 -->
51
-
52
- ## 原因
53
- <!-- 为什么选择这个选项?权衡了哪些因素? -->
@@ -1,256 +0,0 @@
1
- ---
2
- id: ka-review-rule-架构审查规则
3
- kind: guidance
4
- title: 架构审查
5
- triggers:
6
- - 架构
7
- - 分层
8
- - Controller
9
- - Service
10
- - Entity
11
- - 事务
12
- sync_policy: copy_to_project
13
- status: active
14
- extra:
15
- name: architecture-rules
16
- type: constraint
17
- scope:
18
- - '*'
19
- products:
20
- - '*'
21
- lifecycle_status: active
22
- version: 1.3.0
23
- last_reviewed: '2026-06-13'
24
- domain:
25
- - design
26
- - verify
27
- verification_layer: L2
28
- stage: design
29
- owner_mechanism: mc-generic-review
30
- ---
31
-
32
- # 架构审查规则
33
-
34
- > 合并自:架构审查.md(代码扫描 ARC-01~09)+ 架构设计审查.md(文档审查 ARCH-R01~14)。统一为「代码扫描 + 文档审查」双区 review_rule。
35
- >
36
- > **两个执行区**:
37
- > - **代码扫描区(ARC-0X)**:verify-gate 通过 regex_pattern_scan 扫 git diff 变更文件,命中=违规。单行匹配。
38
- > - **文档审查区(ARCH-R0X)**:design-gate 通过 document_structure 检查架构设计文档章节完整性;semantic 项 LLM 评判。
39
- >
40
- > **档位**:A 档=regex_pattern_scan 单行可判|B 档=external_command 成熟工具|C 档=semantic LLM 评判。
41
-
42
- ## 代码扫描区(ARC-01~09,verify-gate regex_pattern_scan 读取)
43
-
44
- ## ARC-01: Controller 包含业务逻辑
45
- pattern: /@(?:RestController|Controller)[\s\S]*?public\s+\w+\s+\w+\s*\([^)]*\)\s*\{[\s\S]*?(?:if\s*\(.*[><=!]|for\s*\(|while\s*\().*(?:calculate|compute|validate)/
46
- severity: warning
47
- check_type: deterministic
48
- executor: regex_pattern_scan
49
- scope: backend
50
- description: Controller 层禁止包含业务逻辑(if/else 分支、计算、校验),必须下沉到 Service 层。
51
- ⚠️ 已知局限:本 pattern 含跨行 [\s\S]*?,但 regex_pattern_scan 单行匹配,要求一行内同时出现注解+方法+业务逻辑几乎不可能 → 实际命中极低。深度检查须迁 B 档(checkstyle/ArchUnit 检测 Controller 方法复杂度)。
52
- evidence_required:
53
- - "扫描结果:含业务逻辑的 Controller 文件路径+行号"
54
-
55
- ## ARC-02: Entity 直接暴露给外部
56
- pattern: /(?:ResponseEntity|ResponseBody).*<.*Entity>/
57
- severity: warning
58
- check_type: deterministic
59
- executor: regex_pattern_scan
60
- scope: backend
61
- description: Controller 返回类型禁止使用 Entity,必须通过 DTO/VO 转换,防止结构耦合和敏感字段泄漏
62
- evidence_required:
63
- - "扫描结果:直接暴露 Entity 的文件路径+行号"
64
-
65
- ## ARC-03: 缺少 @Transactional 注解的写操作
66
- pattern: /public\s+\w+\s+(?:save|create|update|delete|insert|remove)\w*\s*\(/
67
- severity: error
68
- check_type: deterministic
69
- executor: regex_pattern_scan
70
- scope: backend
71
- description: 写操作 Service 方法必须标注 @Transactional(rollbackFor = Exception.class)。
72
- ⚠️ 已知局限:本 pattern 仅命中"写操作方法存在",单行看不到上一行的 @Transactional 注解 → 无法真正判定"缺事务",存在误报。深度检查须迁 B 档(checkstyle 检测写方法注解)。
73
- evidence_required:
74
- - "扫描结果:缺少 @Transactional 的写操作文件路径+行号"
75
-
76
- ## ARC-04: 未使用依赖注入直接 new 服务对象
77
- pattern: /new\s+\w*(?:Service|Repository|Mapper|Dao|Manager)\s*\(/
78
- severity: warning
79
- check_type: deterministic
80
- executor: regex_pattern_scan
81
- scope: backend
82
- description: 禁止手动 new Service/Repository 实例,必须通过构造器注入或 @Autowired
83
- evidence_required:
84
- - "扫描结果:含 new 服务对象的文件路径+行号"
85
-
86
- ## ARC-05: 前端组件文件超过 300 行应拆分
87
- severity: warning
88
- check_type: external_tool
89
- executor: external_command
90
- check_hint: 单个组件文件超过 300 行时应拆分为子组件,保持单一职责。单行 regex 无法统计文件行数,委托 eslint rule max-lines
91
- command_hint: npx eslint --rule '{"max-lines":["error",{"max":300,"skipBlankLines":true,"skipComments":true}]}'
92
- scope: frontend
93
- description: 单个组件文件超过 300 行时应拆分为子组件,保持单一职责。
94
- ⚠️ 原 pattern 为空正则 //,编译为 new RegExp("","") 匹配任意行 → 挂载会全文件误命中。已移除 pattern,迁 B 档 external_command(eslint max-lines),由 verify-gate Phase 4 挂载。
95
- evidence_required:
96
- - "eslint max-lines 报告(超 300 行的组件文件路径+行数)"
97
-
98
- ## ARC-06: API 调用未封装到 service 层
99
- pattern: /(?:fetch|axios)\s*\.\s*(?:get|post|put|delete)\s*\(/
100
- severity: warning
101
- check_type: deterministic
102
- executor: regex_pattern_scan
103
- scope: frontend
104
- description: HTTP 调用禁止直接写在组件中,必须封装到独立的 service/API 层
105
- evidence_required:
106
- - "扫描结果:含组件内 HTTP 调用的文件路径+行号"
107
-
108
- ## ARC-07: 循环依赖导致启动失败
109
- pattern: /@Autowired.*@Lazy|@Lazy\s+@Autowired/
110
- severity: warning
111
- check_type: deterministic
112
- executor: regex_pattern_scan
113
- scope: backend
114
- description: 使用 @Lazy 解决循环依赖是临时方案,应重构消除循环依赖。
115
- ⚠️ 已知局限:@Autowired 与 @Lazy 通常分行写,单行难同时命中。深度检查迁 B 档(ArchUnit beFreeOfCycles,与 ARCH-DEP-02 同源)。
116
- evidence_required:
117
- - "扫描结果:含 @Lazy 循环依赖的文件路径+行号"
118
-
119
- ## ARC-08: Service 层直接操作 HttpServletRequest/Response
120
- pattern: /(?:HttpServletRequest|HttpServletResponse)\s/
121
- severity: warning
122
- check_type: deterministic
123
- executor: regex_pattern_scan
124
- scope: backend
125
- description: Service 层禁止依赖 Servlet API,应通过参数 DTO 传递数据(与架构设计规则 ARCH-RED-03 同源 pattern,双重覆盖)
126
- evidence_required:
127
- - "扫描结果:Service 层引用 Servlet API 的文件路径+行号"
128
-
129
- ## ARC-09: 未配置全局异常处理器
130
- severity: warning
131
- check_type: external_tool
132
- executor: external_command
133
- command_hint: grep -rl -e @RestControllerAdvice -e @ControllerAdvice --include=*.java .
134
- scope: backend
135
- description: 项目必须有全局异常处理器(@RestControllerAdvice),统一错误响应格式。
136
- 已迁 B 档 external_command:verify-gate 挂 external_command 跑 grep 项目级存在性检测,
137
- exitCode 反转(找到 @RestControllerAdvice = exitCode 0 通过,缺失 = exitCode 1 失败),
138
- 修正原 regex_pattern_scan 语义反转(命中=违规 vs 此处命中=有处理器=好事)+ git diff 静默失效(项目级配置不在变更文件内)问题。
139
- 原空 pattern 已移除(regex_pattern_scan 单行匹配无法做项目级存在性检测)。
140
- evidence_required:
141
- - "全局异常处理器存在确认(external_command grep 项目级 exitCode 0)"
142
-
143
- ## 文档审查区(ARCH-R01~14,design-gate document_structure / semantic 读取)
144
-
145
- ## ARCH-R01: 架构目标与需求对齐
146
- severity: error
147
- check_type: deterministic
148
- executor: document_structure
149
- check_hint: Ch2 架构目标中引用的 REQ-ID 覆盖率 ≥ 100%
150
- evidence_required: "Ch2 架构目标表 + Ch3.2 功能需求引用表"
151
- failure_message: "架构目标未覆盖 REQ-{ID},或引用了不存在的 REQ-ID"
152
- 档位: A 档
153
-
154
- ## ARCH-R02: ADR 完整性
155
- severity: error
156
- check_type: deterministic
157
- executor: document_structure
158
- check_hint: MADR 必填字段完整(标题/状态/上下文/决策/候选方案/理由/后果)
159
- evidence_required: "ADR 文件"
160
- failure_message: "ADR 缺少必填字段"
161
- 档位: A 档
162
-
163
- ## ARCH-R03: 约束条件覆盖
164
- severity: warning
165
- check_type: deterministic
166
- executor: document_structure
167
- check_hint: Ch3a 技术约束/组织约束/法规约束/预算约束各 ≥1 条
168
- evidence_required: "架构设计文档 Ch3a"
169
- failure_message: "约束条件未覆盖全部 4 类"
170
- 档位: A 档
171
-
172
- ## ARCH-R04: 模块边界清晰性
173
- severity: warning
174
- check_type: semantic
175
- check_hint: 模块单一职责,无过度耦合
176
- evidence_required: "架构设计文档 Ch5"
177
- 档位: C 档
178
-
179
- ## ARCH-R05: 接口契约完备性
180
- severity: warning
181
- check_type: deterministic
182
- executor: document_structure
183
- check_hint: 请求/响应/错误码完整
184
- evidence_required: "架构设计文档 Ch8"
185
- 档位: A 档
186
-
187
- ## ARCH-R06: 数据模型一致性
188
- severity: warning
189
- check_type: deterministic
190
- executor: document_structure
191
- check_hint: 实体关系完整/字段类型明确
192
- evidence_required: "架构设计文档 Ch7"
193
- 档位: A 档
194
-
195
- ## ARCH-R07: NFR 量化可行性
196
- severity: info
197
- check_type: semantic
198
- check_hint: 目标值可测量
199
- evidence_required: "架构设计文档 Ch10.1"
200
- 档位: C 档
201
-
202
- ## ARCH-R08: 安全架构覆盖
203
- severity: warning
204
- check_type: deterministic
205
- executor: document_structure
206
- check_hint: Ch6.4 包含认证方案 + 授权方案 + 数据加密策略
207
- evidence_required: "架构设计文档 Ch6.4"
208
- 档位: A 档
209
-
210
- ## ARCH-R09: 部署方案可行性
211
- severity: info
212
- check_type: semantic
213
- check_hint: 环境规划/CI/CD 方案完整
214
- evidence_required: "架构设计文档 Ch6.5"
215
- 档位: C 档
216
-
217
- ## ARCH-R10: 风险应对充分性
218
- severity: warning
219
- check_type: semantic
220
- check_hint: Ch10.2 风险登记覆盖度充分
221
- evidence_required: "架构设计文档 Ch10.2"
222
- 档位: C 档
223
-
224
- ## ARCH-R11: 跨横切关注点覆盖
225
- severity: info
226
- check_type: deterministic
227
- executor: document_structure
228
- check_hint: Ch13 日志/错误/缓存/配置 4 项至少各 1 条
229
- evidence_required: "架构设计文档 Ch13"
230
- 档位: A 档
231
-
232
- ## ARCH-R12: 子产物一致性
233
- severity: warning
234
- check_type: deterministic
235
- executor: document_structure
236
- check_hint: 数据库/接口文档引用在主产物中存在
237
- evidence_required: "全产物交叉检查"
238
- 档位: A 档
239
-
240
- ## ARCH-R13: 改造影响范围完整性(老系统)
241
- severity: warning
242
- check_type: deterministic
243
- executor: document_structure
244
- check_hint: 改造影响评估中每个受影响模块都有验证方式
245
- evidence_required: "改造影响范围评估 §2 + §3"
246
- system_scope: existing-system
247
- 档位: A 档
248
-
249
- ## ARCH-R14: 隔离适配器向后兼容(老系统)
250
- severity: error
251
- check_type: deterministic
252
- executor: document_structure
253
- check_hint: 隔离适配器方案中 API 语义差异行均有兼容策略
254
- evidence_required: "隔离适配器方案 §2.4"
255
- system_scope: existing-system
256
- 档位: A 档