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,49 +0,0 @@
1
- ---
2
- id: ka-pattern-circuit-breaker
3
- kind: knowledge
4
- title: 熔断降级
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: circuit-breaker
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:
18
- - build
19
- - verify
20
- verification_layer: L2
21
- stage: build
22
- owner_mechanism: mc-backend-pattern
23
- ---
24
-
25
- ## 决策规则
26
- - 外部依赖(第三方 API、中间件、其他微服务)必须配置超时时间,禁止无限等待
27
- - 核心链路的外部调用必须配置熔断器:失败率阈值(建议 50%)、熔断时长(建议 30s)、半开探测数(建议 5)
28
- - 熔断触发后必须有降级策略:返回缓存数据/默认值/友好提示,禁止直接抛异常给用户
29
- - 接口必须有限流保护(令牌桶/漏桶),防止突发流量击穿服务
30
- - 降级方案必须提前定义:降级行为、用户提示文案、数据一致性保障、恢复条件
31
- - 重试必须满足幂等性,重试间隔必须使用指数退避(initial 100ms, multiplier 2, max 3 次)
32
- - 线程池隔离:不同外部依赖使用独立线程池,防止一个慢服务拖垮所有请求
33
- - 必须有服务健康检查端点(/actuator/health),包含依赖组件状态(DB/Redis/MQ)
34
- - 熔断器必须配置 half-open 状态的探测请求量(如允许 5 个请求通过测试),成功后才恢复
35
- - 降级 fallback 必须返回有意义的默认值或缓存数据,禁止返回 null 或空对象
36
- - 熔断/降级事件必须触发监控告警,不能静默降级
37
- - 外部调用必须设置独立的超时时间(不依赖全局超时),与熔断器配合使用
38
- - 熔断器状态变化必须有日志记录(closed → open → half-open → closed)
39
-
40
- ## 验收项
41
- - [AC-01] 外部调用有超时和熔断配置
42
- - [AC-02] 熔断后有降级策略和用户提示
43
- - [AC-03] 重试有指数退避和幂等保障
44
- - [AC-04] 有限流保护
45
- - [AC-05] 健康检查端点包含依赖状态
46
- - [AC-06] half-open 探测机制配置
47
- - [AC-07] fallback 返回有意义的值
48
- - [AC-08] 熔断事件有监控告警
49
- - [AC-09] 外部调用有独立超时
@@ -1,43 +0,0 @@
1
- ---
2
- id: ka-pattern-state-transition
3
- kind: knowledge
4
- title: 状态流转
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: state-transition
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: build
18
- verification_layer: L2
19
- stage: build
20
- owner_mechanism: mc-backend-pattern
21
- ---
22
-
23
- ## 决策规则
24
- - 仅列出状态列表不够,每个状态转换必须定义:触发条件、守卫条件、失败/回滚动作
25
- - 金额、库存、配额、计数器等并发敏感节点默认需要并发控制
26
- - 并发敏感操作必须显式声明:并发控制方式(乐观锁/悲观锁/幂等键/去重表)、重试策略、重复提交处理、用户可见失败反馈
27
- - 跨模块或跨服务状态变更必须显式声明最终一致性和补偿策略
28
- - 集成测试必须覆盖:至少一次成功转换、一次守卫失败、一次失败恢复或升级路径
29
- - 状态流转必须通过状态机框架(如 Spring Statemachine)或显式流转表校验,禁止硬编码 if-else
30
- - 每次状态变更必须记录流转日志(原状态→新状态、操作人、时间、原因)
31
- - 并发状态变更必须使用乐观锁或分布式锁,防止状态覆盖
32
- - 状态流转失败必须返回明确的错误原因,告知用户当前状态和允许的下一步操作
33
- - 状态定义必须包含初始状态和终态,禁止出现无法流转的"悬挂状态"
34
-
35
- ## 验收项
36
- - [AC-01] 状态转换有触发条件、守卫条件、回滚动作
37
- - [AC-02] 并发敏感操作有显式并发控制声明
38
- - [AC-03] 跨服务状态变更有补偿策略
39
- - [AC-04] 集成测试覆盖成功和失败路径
40
- - [AC-05] 状态机校验(非硬编码)
41
- - [AC-06] 状态变更审计日志
42
- - [AC-07] 并发状态变更防护
43
- - [AC-08] 无悬挂状态
@@ -1,45 +0,0 @@
1
- ---
2
- id: 独立审查
3
- kind: guidance
4
- title: 独立审查
5
- triggers:
6
- - 代码审查
7
- - review
8
- - 独立检查
9
- sync_policy: copy_to_project
10
- status: active
11
- extra:
12
- name: independent-review
13
- type: constraint
14
- scope:
15
- - '*'
16
- domain: build
17
- lifecycle_status: active
18
- verification_layer: L2
19
- stage: build
20
- owner_mechanism: mc-command-router
21
- ---
22
-
23
- # 独立审查规则
24
-
25
- ## 审查测试要求
26
-
27
- - 每个任务完成后,独立审查必须新增 ≥9 个测试场景
28
- - 测试描述和场景必须与编码阶段的实施测试不同(不同角度、不同数据)
29
- - 审查测试必须覆盖:
30
- - 全部公开接口(每个接口至少 2 个场景)
31
- - 全部核心逻辑路径(正向 + 反向)
32
- - 全部错误处理分支
33
-
34
- ## 审查覆盖范围
35
-
36
- - 接口覆盖:每个公开方法/函数必须有审查测试
37
- - 逻辑路径覆盖:每个 if/switch 分支必须有测试用例
38
- - 边界值覆盖:数值边界、空值、超长输入
39
- - 并发/竞态覆盖(如适用):多线程/异步场景
40
-
41
- ## 审查独立性
42
-
43
- - 审查测试不得复制实施测试的代码和断言
44
- - 审查测试必须独立设计测试数据和场景
45
- - 审查发现的问题必须记录,不得直接修改代码绕过
@@ -1,47 +0,0 @@
1
- ---
2
- id: ka-pattern-constrained-implementation
3
- kind: knowledge
4
- title: 约束实现
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: constrained-implementation
9
- scope:
10
- - backend
11
- - frontend
12
- products:
13
- - '*'
14
- lifecycle_status: active
15
- version: 1.1.0
16
- last_reviewed: '2026-06-01'
17
- type: knowledge
18
- domain: build
19
- verification_layer: L2
20
- stage: build
21
- owner_mechanism: mc-general-pattern
22
- ---
23
-
24
- ## 决策规则
25
- - 必须在修改代码前定位根因,解释根因、修改边界和验证方式后再编码
26
- - 只修改任务卡/补丁计划/白名单明确范围内的文件
27
- - 禁止补丁叠补丁或试错式堆叠修复
28
- - 禁止删除断言、放宽测试、增加 sleep、让测试适应错误行为
29
- - 禁止顺手重构或范围外的"清理"
30
- - 每个代码变更必须追溯到任务卡、补丁计划或阻塞性缺陷
31
- - 范围超出白名单或需要变更接口/DDL/权限/菜单时,立即上报而非自行决定
32
- - 必须完成本地验证并产出结构化证据后再结束
33
- - 唯一约束必须同时在数据库和应用层校验,防止并发场景下的重复数据
34
- - 外键约束在微服务架构中不建议使用物理外键,应通过应用层保证数据一致性
35
- - 乐观锁必须使用 version 字段而非 update_time(后者可能因精度问题失效)
36
- - 软删除数据必须排除在唯一约束之外(如添加 is_deleted 条件索引)
37
- - 数据库约束的校验失败必须返回用户友好的错误消息,而非数据库原始报错
38
-
39
- ## 验收项
40
- - [AC-01] 变更范围与白名单完全匹配
41
- - [AC-02] 根因已确认再编码(非先改再试)
42
- - [AC-03] 无顺手重构或范围外变更
43
- - [AC-04] 本地验证执行完毕有结果
44
- - [AC-05] 超范围变更已上报
45
- - [AC-06] 唯一约束双层校验
46
- - [AC-07] 乐观锁用 version 字段
47
- - [AC-08] 软删除与唯一约束兼容
@@ -1,60 +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
- - build
9
- - 编码就绪
10
- - coding readiness
11
- extra:
12
- name: coding-readiness-review
13
- type: constraint
14
- scope:
15
- - backend
16
- - frontend
17
- products:
18
- - '*'
19
- lifecycle_status: active
20
- version: 1.2.0
21
- last_reviewed: '2026-06-04'
22
- domain: build
23
- verification_layer: L2
24
- stage: build
25
- owner_mechanism: mc-coding-readiness
26
- ---
27
-
28
- # 编码就绪审查规则
29
-
30
- ## READY-01: CodingReadiness 非空
31
-
32
- check_hint: 编码前必须确认 CodingReadiness 检查已通过
33
- severity: error
34
- check_type: deterministic
35
- scope: [backend, frontend]
36
- description: CodingReadiness 报告必须存在且 status 非 blocked;blocked 状态必须先解决前置问题
37
-
38
- ## READY-02: OOD 摘要完整
39
-
40
- check_hint: OOD 设计摘要必须包含类定义、方法签名和协作关系
41
- severity: warning
42
- check_type: deterministic
43
- scope: [backend, frontend]
44
- description: OOD 摘要至少包含:核心类名、公开方法签名、类间协作关系图;缺少任一项必须补充后再编码
45
-
46
- ## READY-03: 前置产物已确认
47
-
48
- check_hint: 编码依赖的设计产物必须全部就绪
49
- severity: error
50
- check_type: deterministic
51
- scope: [backend, frontend]
52
- description: API 接口规格、数据库设计文档、切片计划等编码依赖产物必须已生成且无 hard_fail
53
-
54
- ## READY-04: 技术栈明确
55
-
56
- check_hint: 编码前必须确认使用的技术栈和框架版本
57
- severity: warning
58
- check_type: deterministic
59
- scope: [backend, frontend]
60
- description: 语言版本、框架版本、关键依赖版本必须在编码前明确,避免编码过程中变更技术栈
@@ -1,22 +0,0 @@
1
- ---
2
- id: build-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: build
17
- owner_mechanism: mc-stage-gate-engine
18
- ---
19
-
20
- # build 阶段聚合检查
21
-
22
- 收容无单一资产归属的 stage 级 check(如编译/测试/部署证据等)。
@@ -1,46 +0,0 @@
1
- ---
2
- id: ka-pattern-coding-quality
3
- kind: knowledge
4
- title: 编码质量
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: coding-quality
9
- scope:
10
- - backend
11
- - frontend
12
- products:
13
- - '*'
14
- lifecycle_status: active
15
- version: 1.1.0
16
- last_reviewed: '2026-06-01'
17
- type: knowledge
18
- domain: build
19
- verification_layer: L2
20
- stage: build
21
- owner_mechanism: mc-general-pattern
22
- ---
23
-
24
- ## 决策规则
25
- - 50 行能解决的问题禁止写 200 行;禁止为单次使用场景过度设计
26
- - 每行代码变更必须可追溯到任务卡片中的显式需求,禁止"顺手"重构相邻代码
27
- - 实现记录必须显式声明业务入口集成状态(菜单/路由/权限)
28
- - Bug 修复必须针对根因,禁止在破损代码上叠加 workaround
29
- - 方法必须按业务步骤拆分为单一职责的私有方法
30
- - 新增/修改类必须文档化业务职责、边界和关键协作者
31
- - 仅在"非显而易见"的关键行添加注释说明 why,禁止对简单赋值加噪声注释
32
- - 方法长度不超过 80 行,超过时拆分为子方法
33
- - 方法参数不超过 5 个,超过时封装为请求对象
34
- - 单个类职责单一(SRP),超过 500 行的类应考虑拆分
35
- - 条件嵌套不超过 3 层,超过时使用卫语句、策略模式或 Optional 链重构
36
- - 禁止使用魔法数字,必须提取为命名常量或枚举
37
-
38
- ## 验收项
39
- - [AC-01] 代码变更可追溯到任务需求
40
- - [AC-02] 业务入口集成状态已声明
41
- - [AC-03] Bug 修复针对根因而非 workaround
42
- - [AC-04] 无过度设计(50行能解决的不写200行)
43
- - [AC-05] 方法不超过 80 行
44
- - [AC-06] 参数不超过 5 个
45
- - [AC-07] 嵌套不超过 3 层
46
- - [AC-08] 无魔法数字
@@ -1,105 +0,0 @@
1
- ---
2
- id: 编码阶段执行
3
- kind: guidance
4
- title: 编码阶段执行
5
- sync_policy: copy_to_project
6
- status: active
7
- triggers:
8
- - 编码执行
9
- - 编码阶段
10
- - coding stage
11
- - 开始编码
12
- extra:
13
- name: coding-stage-execution-workflow
14
- type: procedure
15
- scope:
16
- - backend
17
- - frontend
18
- products:
19
- - '*'
20
- domain: build
21
- version: 1.0.0
22
- last_reviewed: '2026-06-04'
23
- lifecycle_status: active
24
- verification_layer: L2
25
- stage: build
26
- owner_mechanism: mc-core-engineering-principles
27
- ---
28
-
29
- # 编码阶段执行工作流
30
-
31
- ## 适用场景
32
- 编码与单元测试阶段的完整 Agent 执行工作流。从读取上游产物到推进至下一阶段的全流程编排。
33
-
34
- ## 步骤
35
-
36
- ### 1. [读取] 加载上游产物
37
- - 加载数据库设计文档(docs/design/01-数据库设计文档.md)
38
- - 加载 API 接口规格文档(docs/design/02-API接口规格文档.md)
39
- - 加载 openapi.yaml(若存在)
40
- - 确认所有设计产物无 hard_fail 状态
41
-
42
- ### 2. [触发] 调用 sf_work action=act
43
- - 获取当前 scope 和 forbidden_tools
44
- - 确认 stage 为"build"
45
- - 确认 forbidden_tools 不影响编码核心流程
46
-
47
- ### 3. [任务规划] 执行任务拆解流程(E-01)
48
- - 执行任务拆解流程 → 选择分解策略 → 生成切片计划 → 生成依赖图
49
- - 运行 G-01 build-gate(8 项检查)
50
- - gate 未通过 → 修复后重新执行步骤 3
51
-
52
- ### 4. [编码准备] 执行编码前澄清流程(E-02)
53
- - 不确定性分级 → 澄清问题 → 输入完备报告
54
- - 运行 G-02 build-gate(3 项检查)
55
- - status=blocked → 阻断,等待用户解决
56
- - status=allowed → 进入步骤 5
57
-
58
- 4a. **头脑风暴触发**:若实现方案存在多种选择且无明确最优,或反复修复同一模块 ≥ 3 次:
59
- → 进入「不确定时头脑风暴流程」(templates/procedures/不确定时头脑风暴.md)
60
- → 若 fundamental_need 为空 → 先触发 FP-01
61
-
62
- ### 5. [切片循环] 对每个切片执行
63
- - **5a.** 执行 E-03 测试优先编码工作流
64
- - 模式 A(核心逻辑):red→green→refactor
65
- - 模式 B(简单 CRUD):红绿合并
66
- - **5b.** 运行 G-03 build-gate(3 项检查)
67
- - **5c.** 运行 G-06 slice-gate(3 项检查)
68
- - **5d.** 老系统切片:执行新老逻辑比对(100% 一致率)
69
- - **5e.** 切片验证点(E-04 步骤 7):运行测试 → 检查覆盖率 → 确认涉及文件 → 更新测试状态
70
- - **5f.** 运行 G-05 build-gate(2 项检查)
71
- - **5g.** 若触发重规划(E-06 动态重规划):
72
- - 局部重规划 → 回到 5a
73
- - 结构重规划 → 回到步骤 3
74
- - 回退 → 阻断并通知用户
75
-
76
- ### 6. [编码验证] 运行 G-04 build-gate
77
- - 构建通过(0 error)
78
- - 测试通过(passed/failed/total)
79
- - 覆盖率达标(增量行覆盖率≥阈值)
80
- - gate 未通过 → 修复后重新运行
81
-
82
- ### 7. [切片审查] 运行 G-07 slice-gate
83
- - 独立审查测试充分性
84
- - 无 hard_fail(代码质量检查)
85
- - 无遗留问题
86
- - gate 未通过 → 修复后重新审查
87
-
88
- ### 8. [推进] 调用 sf_work action=verify
89
- - 所有 gate 通过后推进至下一阶段
90
- - 生成编码阶段完成报告
91
-
92
- ## 检查点
93
- - [ ] 上游产物已全部加载且无 hard_fail
94
- - [ ] 任务规划 gate 通过(G-01)
95
- - [ ] 编码准备 gate 通过(G-02)
96
- - [ ] 每个切片:编码实现→切片执行→编码与单元测试 gate 全部通过
97
- - [ ] 编码验证 gate 通过(G-04)
98
- - [ ] 切片审查 gate 通过(G-07)
99
- - [ ] 编码阶段完成报告已生成
100
-
101
- ## 禁止退化
102
- - 跳过任何 gate 直接推进
103
- - gate 失败后不修复直接重试
104
- - 切片循环中跳过老系统比对
105
- - 重规划时降低验收标准
@@ -1,47 +0,0 @@
1
- ---
2
- id: ka-pattern-defect-management
3
- kind: knowledge
4
- title: 缺陷管理
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: defect-management
9
- scope:
10
- - backend
11
- - frontend
12
- products:
13
- - '*'
14
- lifecycle_status: active
15
- version: 1.1.0
16
- last_reviewed: '2026-06-01'
17
- type: knowledge
18
- domain:
19
- - build
20
- - verify
21
- verification_layer: L2
22
- stage: build
23
- owner_mechanism: mc-general-pattern
24
- ---
25
-
26
- ## 决策规则
27
- - 每个缺陷必须归因到最小责任阶段(需求/设计/任务拆解/实现/测试/门禁)
28
- - 修复必须附带证据,"理论上修好了"不可接受
29
- - 有复现价值的缺陷必须产出至少一项回填动作:规则、模版、检查项或知识条目
30
- - 同一缺陷若在案例库中已出现过,自动升级为深层缺陷(方法论级别)
31
- - 报告必须在修复之前编写,禁止先改规则后写报告
32
- - 缺陷结论必须区分:已完成 / 未完成 / 未验证 / 未知,无真实证据不得标记为已完成
33
- - 缺陷必须包含完整的复现步骤、预期结果、实际结果和环境信息
34
- - 每个缺陷必须有优先级(P0-P4)和严重程度(S1-S4)分类
35
- - 修复缺陷必须包含根因分析,禁止只修表面症状
36
- - P0/P1 缺陷修复后必须经过回归测试,不能直接上线
37
- - 缺陷关闭必须由提单人确认,修复人不能自行关闭
38
-
39
- ## 验收项
40
- - [AC-01] 缺陷有归因阶段
41
- - [AC-02] 修复附带执行证据
42
- - [AC-03] 有复现价值的缺陷有回填动作
43
- - [AC-04] 结论区分已完成/未完成/未验证/未知
44
- - [AC-05] 缺陷有完整复现信息
45
- - [AC-06] 有优先级和严重程度
46
- - [AC-07] 修复包含根因分析
47
- - [AC-08] 高优先级缺陷有回归测试
@@ -1,86 +0,0 @@
1
- ---
2
- id: 耦合检测
3
- kind: guidance
4
- title: 耦合检测
5
- sync_policy: copy_to_project
6
- status: active
7
- triggers:
8
- - 耦合检测
9
- - mock失败
10
- - 循环依赖
11
- - 影响范围
12
- - 回退判定
13
- - coupling detection
14
- extra:
15
- name: coupling-detection
16
- type: constraint
17
- scope:
18
- - '*'
19
- domain: build
20
- lifecycle_status: active
21
- version: 1.2.0
22
- last_reviewed: '2026-06-04'
23
- products:
24
- - '*'
25
- verification_layer: L2
26
- stage: build
27
- owner_mechanism: mc-existing-system-review
28
- ---
29
-
30
- # 老代码耦合检测规则
31
-
32
- ## COUP-TEST-01: 静态方法依赖
33
- id: COUP-TEST-01
34
- name: 静态方法依赖
35
- severity: warning
36
- check_type: deterministic
37
- check_hint: 老代码使用静态方法/单例导致无法 mock
38
- description: 老代码中使用静态方法或单例模式导致测试时无法 mock 隔离。发现此类耦合应评估是否需要引入适配器层。
39
-
40
- ## COUP-TEST-02: 直接 new 对象
41
- id: COUP-TEST-02
42
- name: 直接 new 对象
43
- severity: warning
44
- check_type: deterministic
45
- check_hint: 老代码直接 new 依赖对象,未使用依赖注入
46
- description: 老代码在业务逻辑中直接 new 依赖对象而非通过依赖注入,导致无法替换为 mock 进行测试。
47
-
48
- ## COUP-TEST-03: 框架绑定
49
- id: COUP-TEST-03
50
- name: 框架绑定
51
- severity: warning
52
- check_type: semantic
53
- check_hint: 老代码与框架深度绑定(如直接依赖 Request/Response 对象)
54
- description: 老代码直接依赖框架特定对象(HttpServletRequest、ResponseEntity 等),无法在单元测试中独立运行。
55
-
56
- ## COUP-MOD-01: 影响范围>3×
57
- id: COUP-MOD-01
58
- name: 影响范围>3×
59
- severity: error
60
- check_type: deterministic
61
- check_hint: 修改影响文件数超过涉及文件列表的 3 倍
62
- description: 修改一个函数需要同步修改的关联文件数超过切片涉及文件列表的 3 倍,说明耦合度过高,应评估是否需要架构级重构。
63
-
64
- ## COUP-MOD-02: 循环依赖
65
- id: COUP-MOD-02
66
- name: 循环依赖
67
- severity: error
68
- check_type: deterministic
69
- check_hint: 老代码存在循环依赖无法单独抽取
70
- description: 老代码中存在 A→B→A 的循环依赖,无法单独抽取和测试。发现循环依赖应评估是否需要引入接口层解耦。
71
-
72
- ## COUP-ROLLBACK-01: 3 次 mock 失败触发回退
73
- id: COUP-ROLLBACK-01
74
- name: 3 次 mock 失败触发回退
75
- severity: error
76
- check_type: deterministic
77
- check_hint: 尝试写单测 3 次仍无法 mock 隔离 → 触发回退到 design 域(架构设计)
78
- description: 编码阶段尝试为老代码编写单元测试,连续 3 次无法完成 mock 隔离时,触发回退到 design 域(架构设计)重新评估改造方案。
79
-
80
- ## COUP-ROLLBACK-02: 影响超 3 倍触发回退
81
- id: COUP-ROLLBACK-02
82
- name: 影响超 3 倍触发回退
83
- severity: error
84
- check_type: deterministic
85
- check_hint: 修改影响范围超过预期的 3 倍 → 触发回退到 design 域(架构设计)
86
- description: 编码阶段修改老代码时,实际影响范围超过切片涉及文件列表的 3 倍,触发回退到 design 域(架构设计)重新评估改造范围。
@@ -1,40 +0,0 @@
1
- ---
2
- id: 覆盖率标准
3
- kind: guidance
4
- title: 覆盖率标准
5
- sync_policy: copy_to_project
6
- status: active
7
- triggers:
8
- - 覆盖率
9
- - 测试
10
- - 覆盖
11
- extra:
12
- name: coverage-standard
13
- type: constraint
14
- scope:
15
- - '*'
16
- products:
17
- - '*'
18
- lifecycle_status: active
19
- domain: build
20
- verification_layer: L2
21
- stage: build
22
- owner_mechanism: mc-generic-review
23
- ---
24
-
25
- # 覆盖率标准
26
-
27
- ## 新系统
28
- - 行覆盖率最低要求:**70%**
29
- - 每个切片完成后即时校验
30
- - 不达标的切片必须当场修复后才能继续
31
-
32
- ## 老系统
33
- - 增量行覆盖率最低要求:**80%**
34
- - 每个切片完成后即时校验
35
- - 额外要求:新老逻辑比对日志通过
36
-
37
- ## 计算规则
38
- - 统计范围:新增和修改的代码行
39
- - 排除:纯配置文件、自动生成代码
40
- - 工具:项目配置的测试覆盖率工具(如 jest --coverage、pytest --cov)