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,184 +0,0 @@
1
- ---
2
- id: ka-procedure-设计审计流程
3
- kind: guidance
4
- title: 设计审计
5
- sync_policy: copy_to_project
6
- status: active
7
- triggers:
8
- - 设计审计
9
- - 详细设计审计
10
- - 架构审计
11
- - 设计审核
12
- - 审核设计
13
- - audit design
14
- - design audit
15
- - 接口审计
16
- extra:
17
- name: audit-design-procedure
18
- type: procedure
19
- scope:
20
- - backend
21
- - frontend
22
- - infrastructure
23
- products:
24
- - '*'
25
- lifecycle_status: active
26
- domain: verify
27
- applicable_tech_stack:
28
- - '*'
29
- verification_layer: L2
30
- stage: verify
31
- owner_mechanism: mc-intent-expander
32
- ---
33
-
34
- # 设计审计流程
35
-
36
- > **wf-audit-design** 工作流的执行流程契约。
37
- > 适用场景: 用户对已有设计文档(架构/详细/API/数据库设计)做 6 维度审计,**不修改源文档**。
38
- > 关联工具: `sf_work action=verify` (input_artifacts 模式) / `sf_work action=act` (audit_design_prompt)。
39
-
40
- ---
41
-
42
- ## 1. 触发条件
43
-
44
- ### 1.1 用户意图识别
45
- 满足以下任一条件进入审计工作流:
46
- - 意图包含关键词: `审计` / `审核设计` / `设计审计` / `设计审核` / `架构审计` / `详细设计审计` / `audit design`
47
- - 调用 `sf_work action=verify` 时显式传入 `input_artifacts` 参数
48
-
49
- ### 1.2 前置条件
50
- - 用户必须指定至少一个 `input_artifacts` 条目(kind + path)
51
- - 引用的设计文档必须存在于磁盘
52
- - 路由层推断 `mutation_allowed = false`(审计严格只读)
53
-
54
- ---
55
-
56
- ## 2. 6 维度审计清单
57
-
58
- 每维度必须给出至少 1 条 finding,或显式标记 `no_issue_observed`。**未覆盖即失败**。
59
-
60
- ### 维度 1: 跨文档一致性
61
- - 架构文档 / 详细设计 / API 设计 / 数据库设计 命名、边界、调用链是否一致
62
- - 同一概念是否在不同文档中使用不同名称
63
- - 接口契约(参数 / 返回 / 异常)在 API 文档与详细设计中是否完全一致
64
- - **引用审查规则:UCV-REV-01, UCV-REV-02**
65
-
66
- ### 维度 2: OOD/SOLID 合规
67
- - 单一职责: 模块 / 类 / 函数边界是否清晰
68
- - 开闭原则: 扩展点是否通过抽象隔离
69
- - 依赖倒置: 高层模块是否依赖抽象而非具体实现
70
- - 命名 / 分层是否反映职责
71
- - **引用审查规则:SOLID-SRP, SOLID-LSP, SOLID-ISP, SOLID-DIP, SOLID-OCP**
72
-
73
- ### 维度 3: 防孤岛设计
74
- - 新模块与现有系统的集成点是否明确
75
- - 是否定义了与上游(消费者)和下游(依赖)的契约
76
- - 跨团队 / 跨服务协作边界是否清晰
77
- - **引用审查规则:ARC-01, ARC-06**
78
-
79
- ### 维度 4: 契约破坏性
80
- - 新设计是否破坏已有 API / 事件 / 数据契约
81
- - 版本兼容性: 是否有 deprecation 路径
82
- - 客户端 / 调用方升级成本是否评估
83
- - **引用审查规则:SEC-01~12, CON-01~10**
84
-
85
- ### 维度 5: SQL/数据迁移回滚性
86
- - DDL 是否可回滚(DROP / ALTER 必须有 rollback 脚本)
87
- - 数据迁移是否可在中断后恢复
88
- - 是否定义了数据回滚检查点
89
- - 是否区分可逆 / 不可逆变更(DELETE 无回滚需特别标注)
90
- - **引用审查规则:MNT-05, ARC-07**
91
-
92
- ### 维度 6: 索引/性能覆盖
93
- - 主链路查询是否有索引支撑
94
- - 是否评估了 N+1、全表扫描、热点行更新风险
95
- - 分页 / 排序字段是否有联合索引
96
- - **引用审查规则:PER-01~09**
97
-
98
- ---
99
-
100
- ## 3. 严重度分级
101
-
102
- | 级别 | 含义 | 是否阻塞实施 |
103
- |------|------|--------------|
104
- | `error` | 设计错误 / 破坏性变更 / 数据丢失风险 | 是 |
105
- | `warning` | 建议修改,存在风险但不致命 | 否(建议修复) |
106
- | `info` | 供参考的改进建议 | 否(仅供参考) |
107
-
108
- ---
109
-
110
- ## 4. 输出契约 (audit_report)
111
-
112
- ```typescript
113
- interface AuditReport {
114
- dimensions: Array<{
115
- name: string; // "跨文档一致性" | "OOD/SOLID" | ...
116
- findings: Array<{
117
- severity: "error" | "warning" | "info";
118
- location: string; // 文档路径 + 章节/行号
119
- issue_zh: string; // 中文问题描述
120
- recommendation_zh: string; // 中文修复建议
121
- }> | Array<{ no_issue_observed: true; note_zh: string }>;
122
- }>;
123
- overall_status: "blocked" | "passed";
124
- blocking_findings_count: number; // severity=error 的总数
125
- input_artifacts: Array<{ kind: string; path: string }>;
126
- audited_at: string; // ISO 8601
127
- }
128
- ```
129
-
130
- ### 4.1 整体状态判定
131
- - `blocking_findings_count > 0` → `overall_status = "blocked"`
132
- - `blocking_findings_count = 0` → `overall_status = "passed"`
133
-
134
- ---
135
-
136
- ## 5. 流程步骤
137
-
138
- ```text
139
- [用户] sf_task (intent: "开始详细设计审计", input_artifacts: [...])
140
-
141
- [路由] 识别 audit action → workflow_intent = "audit_design"
142
-
143
- [路由] EXTENSION_WORKFLOW_MAP.audit_design → route=analysis, mutation=false
144
-
145
- [扩展] 加载 audit_design_prompt 模版 + 关联知识(review_rule / pattern)
146
-
147
- [执行] 6 维度审计,每维度遍历 input_artifacts 中相关章节
148
-
149
- [输出] audit_report + blocking_findings_count
150
-
151
- [结束] overall_status="blocked" 时建议用户先修复 error,再进入实施
152
- ```
153
-
154
- ---
155
-
156
- ## 6. 关键约束
157
-
158
- 1. **不修改源文档**: 审计产物独立输出,源设计文档保持只读
159
- 2. **finding 必须可追溯**: 每条 finding 必须有 location 字段引用具体文档路径 + 章节 / 行号
160
- 3. **不臆断**: 文档中未声明的约束不得作为 finding 依据
161
- 4. **不漏维度**: 6 维度全部覆盖,无 finding 时必须显式标记 `no_issue_observed`
162
- 5. **中文输出**: issue_zh / recommendation_zh / note_zh 字段必须为中文
163
-
164
- ---
165
-
166
- ## 7. 关联资产
167
-
168
- - **Prompt 模版**: `audit_design_prompt` (`src/engine/pipeline/intent_expander/templates.ts`)
169
- - **工作流契约**: `wf-audit-design` (`src/engine/workflow/workflow_contract_registry.ts`)
170
- - **ARTIFACT_ALIASES**: `design_doc` / `detailed_design` / `api_spec` / `database_design`
171
- - **Pipeline hint**: `code-review`(复用代码审查流程的规则与模式资产)
172
-
173
- ---
174
-
175
- ## 8. 与代码审查流程的区别
176
-
177
- | 维度 | 代码审查 (code_review) | 设计审计 (audit_design) |
178
- |------|------------------------|-------------------------|
179
- | 对象 | 源代码 / diff | 设计文档(Markdown) |
180
- | 输入 | changed_files + file_contents | input_artifacts (kind + path) |
181
- | 触发 | "审查代码" / sf_work action=verify 无 input_artifacts | "审计设计" / sf_work action=verify 带 input_artifacts |
182
- | 维度 | 编码规范 / BUG / 安全 / 性能 | 跨文档一致性 / OOD / 防孤岛 / 契约 / SQL / 索引 |
183
- | 输出 | review_report | audit_report |
184
- | 修改建议 | 直接改代码 | 修改设计文档后重新审计 |
@@ -1,74 +0,0 @@
1
- ---
2
- id: ka-review-rule-试运行熔断规则
3
- kind: guidance
4
- title: 试运行熔断
5
- sync_policy: copy_to_project
6
- status: active
7
- triggers:
8
- - operate
9
- - 熔断
10
- - circuit breaker
11
- - 回退判定
12
- extra:
13
- name: trial-run-circuit-breaker
14
- type: constraint
15
- scope:
16
- - '*'
17
- lifecycle_status: active
18
- version: 1.2.0
19
- last_reviewed: '2026-06-04'
20
- domain: verify
21
- verification_layer: L2
22
- stage: verify
23
- owner_mechanism: mc-existing-system-review
24
- ---
25
-
26
- # 试运行熔断判定规则
27
-
28
- ## CB-ERR-01: 接口错误率超阈值
29
- id: CB-ERR-01
30
- name: 接口错误率超阈值
31
- severity: error
32
- check_type: deterministic
33
- evidence_required: 监控面板错误率截图(5 分钟窗口)
34
- rule: 接口错误率超过 5%(5 分钟窗口)或错误率相比老逻辑增加超过 2 倍时触发熔断
35
-
36
- ## CB-LAT-01: P99 延迟超阈值
37
- id: CB-LAT-01
38
- name: P99 延迟超阈值
39
- severity: error
40
- check_type: deterministic
41
- evidence_required: 监控面板 P99 延迟趋势图
42
- rule: P99 延迟超过老逻辑的 3 倍或 P99 延迟超过 5 秒时触发熔断
43
-
44
- ## CB-BIZ-01: 核心业务流程成功率不足
45
- id: CB-BIZ-01
46
- name: 核心业务流程成功率不足
47
- severity: error
48
- check_type: deterministic
49
- evidence_required: 核心业务流程成功率统计报告
50
- rule: 核心业务流程成功率低于 95% 时触发熔断
51
-
52
- ## CB-BIZ-02: 数据一致性校验失败
53
- id: CB-BIZ-02
54
- name: 数据一致性校验失败
55
- severity: error
56
- check_type: deterministic
57
- evidence_required: 数据一致性校验结果(新老逻辑比对)
58
- rule: 数据一致性校验失败次数 > 0(零容忍),立即触发熔断
59
-
60
- ## CB-SYS-01: 系统资源超限
61
- id: CB-SYS-01
62
- name: 系统资源超限
63
- severity: warning
64
- check_type: deterministic
65
- evidence_required: 系统资源监控面板截图
66
- rule: 内存使用超过 90%、CPU 使用超过 80%(持续 5 分钟)、或数据库连接池耗尽时发出告警
67
-
68
- ## CB-ACTION-01: 熔断动作执行
69
- id: CB-ACTION-01
70
- name: 熔断动作执行
71
- severity: error
72
- check_type: deterministic
73
- evidence_required: 熔断执行日志(开关读取→切换→记录→回退时间线)
74
- rule: 熔断触发后必须执行:1. 读取一键开关配置 → 2. 切换到回退目标(老逻辑)→ 3. 记录熔断时间和触发指标 → 4. 回退到编码阶段修复
@@ -1,44 +0,0 @@
1
- ---
2
- id: ka-pattern-input-validation
3
- kind: knowledge
4
- title: 输入校验
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: input-validation
9
- scope:
10
- - backend
11
- products:
12
- - '*'
13
- lifecycle_status: active
14
- version: 1.1.0
15
- last_reviewed: '2026-06-01'
16
- type: knowledge
17
- domain: verify
18
- verification_layer: L2
19
- stage: verify
20
- owner_mechanism: mc-backend-pattern
21
- ---
22
-
23
- ## 决策规则
24
- - 必须使用 Bean Validation 注解(@NotBlank、@Size、@Min 等)声明式校验
25
- - 禁止手写 if-else 逐字段校验(跨字段业务规则除外)
26
- - 创建和更新必须使用分组校验(CreateGroup/UpdateGroup)
27
- - 校验失败必须返回 400 + 具体字段名和错误消息
28
- - 后端必须校验,禁止仅依赖前端校验
29
- - 数组/集合参数必须校验非空且限制最大长度(防止批量攻击)
30
- - 枚举类型参数必须校验是否为合法枚举值,禁止直接信任前端传入
31
- - 日期参数必须指定格式(@DateTimeFormat)并校验合理性(不能是未来日期等)
32
- - 富文本输入必须使用白名单标签过滤(如 jsoup Whitelist),禁止直接存储原始 HTML
33
- - 正则表达式校验必须限制输入长度和复杂度,防止 ReDoS 攻击
34
- - URL 参数必须校验协议白名单(仅允许 http/https),防止 SSRF
35
-
36
- ## 验收项
37
- - [AC-01] 所有 DTO 字段有校验注解
38
- - [AC-02] 创建/更新使用分组校验
39
- - [AC-03] 校验失败返回 400 + 字段详情
40
- - [AC-04] 无手写 if-else 参数校验
41
- - [AC-05] 集合参数有长度限制
42
- - [AC-06] 枚举参数校验合法值
43
- - [AC-07] 富文本经过白名单过滤
44
- - [AC-08] URL 参数校验协议白名单
@@ -1,101 +0,0 @@
1
- ---
2
- id: ka-procedure-部署发布流程
3
- kind: guidance
4
- title: 部署发布
5
- sync_policy: copy_to_project
6
- status: active
7
- triggers:
8
- - 发布
9
- - 上线
10
- - 部署
11
- - release
12
- - 发版
13
- - 版本发布
14
- - 灰度
15
- - 发布上线
16
- - 生产部署
17
- extra:
18
- name: deploy-release
19
- type: procedure
20
- scope:
21
- - backend
22
- - frontend
23
- products:
24
- - '*'
25
- lifecycle_status: active
26
- version: 1.2.0
27
- last_reviewed: '2026-06-04'
28
- domain: verify
29
- verification_layer: L2
30
- stage: verify
31
- owner_mechanism: mc-delivery-gate
32
- ---
33
-
34
- ## 适用场景
35
- 新功能上线、Bug 修复发版、生产环境部署。适用于经过测试验证后的正式发布流程。
36
-
37
- ## 步骤
38
- 1. 确认所有测试通过(单元测试 + 集成测试),检查 CI 绿灯
39
- 2. 更新版本号(package.json / pom.xml),生成 CHANGELOG
40
- 3. 合并代码到 release/main 分支,打 Git tag(v{version})
41
- 4. 触发 CI/CD 构建,确认构建产物生成成功
42
- 5. 在预发环境(staging)验证核心功能流程
43
- 6. 执行数据库迁移(如有 DDL 变更,先备份再执行)
44
- 7. 部署到生产环境(滚动更新或蓝绿部署)
45
- 8. 验证生产环境:健康检查、核心接口冒烟测试
46
- 9. 监控告警观察 30 分钟,确认无异常
47
- 10. 通知团队发布完成,更新发布记录
48
- 11. 部署前确认回滚方案(回滚命令、数据库回滚脚本、配置回滚点)
49
- 12. 灰度/金丝雀发布:先部署到 10% 实例,观察 5 分钟监控指标
50
- 13. 确认监控指标正常后,逐步扩大到 50% → 100%
51
- 14. 部署完成后验证关键业务流程(冒烟测试),确认功能正常
52
- 15. 部署后观察 30 分钟监控(错误率、响应时间、资源使用),异常则触发回滚
53
-
54
- ## 检查点
55
- - [ ] CI 全部通过,无跳过的测试
56
- - [ ] 预发环境验证通过
57
- - [ ] 数据库变更已执行且可回滚
58
- - [ ] 生产健康检查通过
59
- - [ ] 回滚方案已确认
60
- - [ ] 灰度发布监控指标正常
61
- - [ ] 冒烟测试通过
62
- - [ ] 部署后 30 分钟监控正常
63
-
64
- ## 注意事项
65
- - DDL 变更必须向前兼容(新列可为空或有默认值)
66
- - 发布后保留回滚方案至少 24 小时
67
- - 避免周五下午发布(无人在岗处理问题)
68
- - 发布窗口应选择业务低峰期(通常 22:00-06:00)
69
- - 数据库迁移脚本必须向前兼容,回滚时不执行 DDL 回退
70
- - 发布后必须通知相关团队(运营、客服),提前告知已识别的影响范围和观察窗口
71
-
72
- ## AI Agent 权限边界
73
-
74
- | 权限层级 | 允许 | 禁止 |
75
- |---------|------|------|
76
- | data-plane | 执行构建、运行测试、执行 migration、冒烟测试、收集监控数据 | 自主决定是否回滚 |
77
- | control-plane | 建议 risk score、提供回滚建议 | 自主修改部署策略/灰度比例/跳过审批门禁 |
78
-
79
- 回滚决策必须经人类审批(control-plane),AI 可建议但不可自主执行回滚。
80
-
81
- ## 自动回滚触发器
82
-
83
- | 信号源 | 触发条件 | 冷却期 |
84
- |--------|---------|--------|
85
- | 错误率 | 5xx 率 > 2× 基线 | 5 分钟 |
86
- | 延迟 | P99 > 1.5× 基线 | 5 分钟 |
87
- | 内存 | 分配速率 > 3× 基线(10 分钟内) | 5 分钟 |
88
- | 新错误模式 | 日志中出现部署前不存在的错误 | 3 分钟 |
89
- | 健康检查 | Pod 重启 / OOMKill / 探针失败 | 立即 |
90
-
91
- **防级联回滚**:
92
- - 最大自动回滚频率:1 次/15 分钟
93
- - 连续 2 次回滚后升级为人工处理
94
- - 所有 AI 触发的回滚操作须记录审计日志
95
-
96
- ## AI 部署特有风险
97
-
98
- - AI 可从测试覆盖率缺口获得假性信心 → 部署验证须包含测试未覆盖的关键路径
99
- - 历史成功不保证未来安全 → 新类型变更须额外审查
100
- - AI 缺乏业务上下文(营销活动/冻结窗口/基础设施变更)→ 部署窗口须人工确认
101
- - AI 可静默退化质量(优化可观测指标但损害长期可维护性)→ 部署后审查须检查代码可维护性
@@ -1,46 +0,0 @@
1
- ---
2
- id: ka-pattern-error-handling
3
- kind: knowledge
4
- title: 错误处理
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: error-handling
9
- scope:
10
- - backend
11
- products:
12
- - '*'
13
- lifecycle_status: active
14
- version: 1.1.0
15
- last_reviewed: '2026-06-01'
16
- type: knowledge
17
- domain: verify
18
- verification_layer: L2
19
- stage: verify
20
- owner_mechanism: mc-backend-pattern
21
- ---
22
-
23
- ## 决策规则
24
- - 必须使用 @ControllerAdvice 全局异常处理器,禁止散落的 try-catch 吞异常
25
- - 业务异常必须使用自定义 BusinessException 携带错误码和消息
26
- - 禁止将异常堆栈信息返回给前端
27
- - 系统异常必须记录 ERROR 日志并返回通用提示,不暴露内部细节
28
- - 参数校验失败必须返回 HTTP 400
29
- - 每个用户可见写操作必须定义失败反馈:提示文案、重试建议、是否可恢复
30
- - 权限失败、校验失败、资源不存在、冲突失败、系统异常必须有区别化处理
31
- - 前端提示与接口错误码必须可回链,不得一个写"无权限"、一个写"操作失败"
32
- - 若失败后需要用户补动作(刷新、重新登录、补齐字段、稍后重试),必须写明
33
- - 全局异常处理器必须区分业务异常(可预期)和系统异常(不可预期),分别返回不同错误码
34
- - 错误响应必须包含 traceId,便于日志追踪关联
35
- - 前端必须对每个 API 调用做错误处理(toast/notification),禁止静默失败
36
-
37
- ## 验收项
38
- - [AC-01] 所有异常经全局处理器返回
39
- - [AC-02] 业务异常返回具体错误码和消息
40
- - [AC-03] 系统异常不暴露堆栈给前端
41
- - [AC-04] 校验失败返回 400 + 字段错误详情
42
- - [AC-05] 用户可见写操作有失败反馈(提示+重试建议)
43
- - [AC-06] 前端提示与后端错误码可回链
44
- - [AC-07] 业务异常与系统异常分别处理
45
- - [AC-08] 错误响应包含 traceId
46
- - [AC-09] 前端 API 调用有错误提示
@@ -1,38 +0,0 @@
1
- ---
2
- id: ka-pattern-error-boundary
3
- kind: knowledge
4
- title: 错误边界
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: error-boundary
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: verify
18
- verification_layer: L2
19
- stage: verify
20
- owner_mechanism: mc-frontend-pattern
21
- ---
22
-
23
- ## 决策规则
24
- - React 应用必须在路由级别包裹 ErrorBoundary,防止单个组件崩溃导致整个页面白屏
25
- - 必须提供全局未捕获异常处理(window.onerror / window.addEventListener('error'))
26
- - ErrorBoundary 的 fallback UI 必须包含:错误提示、重试按钮、返回首页链接
27
- - 异步请求错误(网络、超时、服务端)统一在 axios 拦截器处理,禁止每个组件单独 try-catch
28
- - Promise 未捕获 rejection 必须有全局监听(unhandledrejection event)
29
- - 错误信息禁止暴露技术细节给用户(堆栈、SQL、内部 IP)
30
- - 生产环境必须上报错误到监控服务(Sentry / 自建),禁止只在控制台打印
31
- - loading / error / empty 三态必须完整处理,禁止只处理成功状态
32
-
33
- ## 验收项
34
- - [AC-01] 路由级别有 ErrorBoundary 包裹
35
- - [AC-02] fallback UI 有重试和返回首页
36
- - [AC-03] 异步错误统一在拦截器处理
37
- - [AC-04] loading/error/empty 三态完整
38
- - [AC-05] 生产错误上报到监控服务
@@ -1,37 +0,0 @@
1
- ---
2
- id: ka-checklist-隐私审查清单
3
- kind: artifact
4
- title: 隐私审查
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: privacy-review
9
- type: artifact
10
- scope:
11
- - '*'
12
- products:
13
- - '*'
14
- lifecycle_status: active
15
- version: 1.1.0
16
- last_reviewed: '2026-06-01'
17
- domain: verify
18
- verification_layer: L2
19
- stage: verify
20
- owner_mechanism: mc-privacy-boundary
21
- ---
22
-
23
- # 隐私审查清单
24
-
25
- ## 必检项
26
-
27
- - [ ] 所有写入内容经过密钥扫描
28
- - [ ] 无 .env 值出现在 prompt/知识中
29
- - [ ] RedactionRecord 已生成
30
- - [ ] DataAccessGrant 已配置
31
- - [ ] PII 数据已脱敏或排除
32
-
33
- ## 禁止项
34
-
35
- - [ ] 明文密钥出现在任何输出中
36
- - [ ] 未脱敏的 PII 数据
37
- - [ ] 无 DataAccessGrant 的数据访问
@@ -1,38 +0,0 @@
1
- ---
2
- id: ka-checklist-验证验收清单
3
- kind: artifact
4
- title: 验证
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: verification-acceptance
9
- type: artifact
10
- scope:
11
- - '*'
12
- products:
13
- - '*'
14
- lifecycle_status: active
15
- version: 1.1.0
16
- last_reviewed: '2026-06-01'
17
- domain: verify
18
- verification_layer: L2
19
- stage: verify
20
- owner_mechanism: mc-verifier
21
- ---
22
-
23
- # 验证验收清单
24
-
25
- ## 必检项
26
-
27
- - [ ] VerifyResult 已生成并保存到 task_context
28
- - [ ] evidence 包含至少 E1 级别证据
29
- - [ ] build_passed 和 tests_passed 字段已填充
30
- - [ ] coverage 数据已收集
31
- - [ ] 验证策略匹配 execution_shape
32
- - [ ] 验证失败时触发 repair_reverify
33
-
34
- ## 禁止项
35
-
36
- - [ ] 验证结果未保存就标记 done
37
- - [ ] single_artifact 使用完整 build+test
38
- - [ ] 无 evidence 的通过结果
@@ -1,22 +0,0 @@
1
- ---
2
- id: verify-aggregate-checks
3
- kind: guidance
4
- title: 验证聚合检查
5
- triggers:
6
- - 验证
7
- - 测试
8
- - 回归
9
- - 覆盖率
10
- sync_policy: engine_only
11
- status: active
12
- extra:
13
- type: constraint
14
- scope:
15
- - '*'
16
- stage: verify
17
- owner_mechanism: mc-stage-gate-engine
18
- ---
19
-
20
- # verify 阶段聚合检查
21
-
22
- 收容无单一资产归属的 stage 级 check(如编译/测试/部署证据等)。