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,57 +1,78 @@
1
1
  ---
2
- id: ka-rule-domain-operate-rollout-monitoring
2
+ id: ka-guidance-上线观察
3
3
  kind: guidance
4
4
  title: 上线观察
5
+ sync_policy: copy_to_project
6
+ status: active
5
7
  triggers:
6
8
  - 上线
7
9
  - 观察
8
10
  - 监控
9
11
  - rollout
10
- sync_policy: copy_to_project
11
- status: active
12
+ - 灰度
13
+ - 发布
14
+ - 回滚
15
+ - 熔断
16
+ - 发布后
17
+ target_artifact:
18
+ - deploy_config
19
+ - release_note
12
20
  extra:
13
- updated_at: '2026-06-15'
14
- lifecycle_status: active
15
21
  name: rollout-monitoring
16
22
  scope:
17
23
  - '*'
18
24
  products:
19
- - deploy_config
20
- - release_note
21
- type: constraint
22
- version: 1.0.0
23
- last_reviewed: '2026-06-11'
24
- domain:
25
- - operate
25
+ - '*'
26
+ type: procedure
27
+ lifecycle_status: active
28
+ version: 2.0.0
29
+ last_reviewed: '2026-06-17'
26
30
  verification_layer: L2
27
31
  stage: operate
32
+ domain: operate
28
33
  owner_mechanism: mc-domain-operate
29
34
  ---
30
35
 
31
- ## 上线观察规则
36
+ # 上线观察:发布后怎么盯、什么时候回滚
37
+
38
+ > operate-gate 的 OPR-G01~05 是确定性门禁;本 guidance 是发布值守的方法。
39
+ > [[开发者宪法]]:破坏性/线上操作必须可回滚、有人盯。
40
+
41
+ ## 灰度发布
42
+
43
+ - 小流量先上(1% → 10% → 50% → 100%),每档观察一个周期
44
+ - 每档观察指标无异常再放量
45
+ - 灰度期间保留快速回滚能力
46
+
47
+ ## 观察指标(对应 OPR-G01~03)
48
+
49
+ - **错误率**:5xx 在基线 ±20% 内(OPR-G01)
50
+ - **延迟**:P99 不超基线 1.5 倍(OPR-G02)
51
+ - **新错误模式**:日志无部署前不存在的错误(OPR-G03)
52
+ - **业务指标**:核心业务量/转化率无异常下跌
32
53
 
33
- ### 观察指标
54
+ ## 熔断回滚
34
55
 
35
- 1. **错误率监控**
36
- - 上线后 15 分钟内 5xx 错误率不得超过基线的 2
37
- - 新增的错误码必须立即通知
56
+ 回滚触发条件(命中任一立即回滚,不要犹豫):
57
+ - 错误率超基线 2 倍且持续
58
+ - P99 超基线 3 倍
59
+ - 业务核心指标崩跌
60
+ - 数据不一致告警
38
61
 
39
- 2. **延迟监控**
40
- - P99 延迟不得超过基线的 1.5
41
- - 关键接口响应时间必须持续观察 30 分钟
62
+ 回滚操作:
63
+ - 按预演过的回滚方案执行(OPR-G04,总耗时 5 分钟)
64
+ - 回滚后确认指标恢复 + 数据一致性(OPR-G05)
65
+ - 留痕:回滚原因/时间/操作人/结果
42
66
 
43
- 3. **业务指标**
44
- - 核心业务流程(下单/支付/登录)成功率不得下降
45
- - 数据一致性校验必须在上线后执行
67
+ ## 发布后验证
46
68
 
47
- 4. **回滚触发条件**
48
- - 错误率超过阈值 → 自动回滚
49
- - 业务流程完全中断 → 立即回滚
50
- - 数据不一致 → 暂停发布 + 人工评估
69
+ - 数据一致性校验 SQL 全过(OPR-G05)
70
+ - 核心业务流程线上复验(非只看监控)
71
+ - 确认无遗留告警
51
72
 
52
- ### 验收项
73
+ ## 禁止
53
74
 
54
- - [AC-01] 监控面板已就绪
55
- - [AC-02] 告警阈值已配置
56
- - [AC-03] 回滚触发条件已定义
57
- - [AC-04] 观察窗口期已设定(至少 30 分钟)
75
+ - 无回滚方案就上线(违规)
76
+ - 全量直上无灰度(违规,除非低风险配置变更且说明)
77
+ - 指标异常不回滚硬扛(违规)
78
+ - 回滚方案没演练过(违规,OPR-G04)
@@ -22,6 +22,9 @@ extra:
22
22
 
23
23
  # 发布说明
24
24
 
25
+ > **产物定位**:operate 阶段产出。记录发布内容/影响/验证/回滚,是上线可追溯的凭证。
26
+ > **核心纪律**:任何上线变更必须有回滚方案([[开发者宪法]]);发布说明须含回滚章节(operate-gate RELNOTE-STRUCT 守护)。
27
+
25
28
  ## 1. 版本信息
26
29
  - 版本号:
27
30
  - 发布日期:
@@ -0,0 +1,83 @@
1
+ ---
2
+ id: ka-artifact-部署配置
3
+ kind: artifact
4
+ title: 部署配置
5
+ sync_policy: copy_to_project
6
+ status: active
7
+ extra:
8
+ name: deploy-config
9
+ scope:
10
+ - '*'
11
+ products:
12
+ - '*'
13
+ lifecycle_status: active
14
+ version: 1.0.0
15
+ last_reviewed: '2026-06-17'
16
+ type: artifact
17
+ domain: operate
18
+ stage: operate
19
+ owner_mechanism: mc-generic-artifact
20
+ ---
21
+
22
+ # 部署配置
23
+
24
+ > **产物定位**:operate 阶段必出。把环境、依赖、部署方式、健康检查、回滚定清楚。
25
+ > **核心纪律**:部署可回滚([[开发者宪法]]);配置走环境变量不硬编码([[安全加固]])。
26
+ > **完成判定**:见文末。
27
+
28
+ ## 1. 环境规划
29
+ | 环境 | 用途 | 访问范围 | 数据来源 | 配置差异 |
30
+ |------|------|---------|---------|---------|
31
+ | 开发 | | | | |
32
+ | 测试 | | | | |
33
+ | 预发 | | | | |
34
+ | 生产 | | | | |
35
+
36
+ ## 2. 环境变量与密钥
37
+ | 变量名 | 用途 | 是否敏感 | 默认值 | 各环境取值来源 |
38
+ |--------|------|---------|--------|--------------|
39
+
40
+ > 敏感变量必须走密钥管理/环境变量注入,禁止写入镜像或代码(shared-gate SEC-02)。
41
+
42
+ ## 3. 依赖服务
43
+ | 服务 | 用途 | 版本 | 访问方式 | SLA/可用性要求 | 失败降级 |
44
+ |------|------|------|---------|--------------|---------|
45
+ | 数据库 | | | | | |
46
+ | 缓存 | | | | | |
47
+ | 消息队列 | | | | | |
48
+
49
+ ## 4. 部署方式
50
+ - 部署形态:Docker / k8s / 裸机 / Serverless
51
+ - 镜像/制品来源:
52
+ - 部署流程:构建 → 推送 → 拉起 → 健康检查 → 放量
53
+
54
+ ## 5. 健康检查与资源
55
+ | 项 | 配置 |
56
+ |----|------|
57
+ | 健康检查端点 | |
58
+ | 就绪检查 | |
59
+ | 存活检查 | |
60
+ | CPU/内存限制 | |
61
+ | 副本数/扩缩容策略 | |
62
+
63
+ ## 6. 监控告警
64
+ | 指标 | 告警阈值 | 处理动作 |
65
+ |------|---------|---------|
66
+ | 错误率 | | |
67
+ | P99 延迟 | | |
68
+ | 资源使用率 | | |
69
+
70
+ ## 7. 回滚方案(必填)
71
+ | 场景 | 回滚方式 | 回滚耗时 | 验证方法 | 触发条件 |
72
+ |------|---------|---------|---------|---------|
73
+
74
+ > operate-gate OPR-G04:回滚预案须在预发演练,总耗时 ≤ 5 分钟。
75
+
76
+ ## 完成判定
77
+
78
+ - [ ] 四环境规划完整(开发/测试/预发/生产)
79
+ - [ ] 敏感变量标注并走密钥管理(无硬编码)
80
+ - [ ] 依赖服务列出失败降级
81
+ - [ ] 健康检查(就绪+存活)配置
82
+ - [ ] 监控告警覆盖错误率/延迟/资源
83
+ - [ ] 回滚方案有且可演练
@@ -2,17 +2,21 @@
2
2
  id: shared-enforced
3
3
  kind: enforced
4
4
  gate: shared-gate
5
- title: 跨阶段通用强制检查清单
5
+ title: 共享硬底线
6
6
  sync_policy: engine_only
7
7
  status: active
8
+ extra:
9
+ owner_mechanism: mc-stage-gate-engine
8
10
  checks:
11
+ # —— SoloForge 自身架构边界(守护引擎不被污染)——
9
12
  - id: SHD-LLM01
10
13
  executor: regex_pattern_scan
11
14
  rule: "SoloForge 源码禁止直接调用 LLM API(架构边界:编排引擎不绑定模型,产出上限由客户端 AI 决定)"
12
15
  severity: error
13
16
  check_type: deterministic
14
17
  pattern: '/(?:anthropic|openai)\.(?:messages|chat)\.(?:create|completions)|new\s+Anthropic\(|new\s+OpenAI\(/'
15
- languages: [通用]
18
+ languages:
19
+ - 通用
16
20
  evidence_required:
17
21
  - "regex_pattern_scan 扫描结果(src/ 无 LLM API 直接调用命中)"
18
22
  gate: shared-gate
@@ -23,13 +27,50 @@ checks:
23
27
  severity: warning
24
28
  check_type: deterministic
25
29
  pattern: '/throw\s+new\s+Error\(\s*"[A-Za-z]/'
26
- languages: [ts, 通用]
30
+ languages:
31
+ - ts
32
+ - 通用
27
33
  evidence_required:
28
34
  - "regex_pattern_scan 扫描结果(src/ 无英文 throw Error/日志)"
29
35
  gate: shared-gate
30
36
  target: self
37
+ # —— 用户项目代码安全底线 ——
38
+ - id: SEC-01
39
+ executor: regex_pattern_scan
40
+ rule: "禁止提交私钥内容(含 BEGIN PRIVATE KEY 头)"
41
+ severity: error
42
+ check_type: deterministic
43
+ pattern: '/-----BEGIN (RSA |EC |DSA |OPENSSH |)PRIVATE KEY-----/'
44
+ languages:
45
+ - 通用
46
+ evidence_required:
47
+ - "regex_pattern_scan 扫描结果(git diff 变更文件无私钥泄露)"
48
+ gate: shared-gate
49
+ target: self
50
+ - id: SEC-02
51
+ executor: regex_pattern_scan
52
+ rule: "禁止硬编码高熵密钥/密码(password/secret/api_key/token 赋值字面量)"
53
+ severity: warning
54
+ check_type: deterministic
55
+ pattern: "/(password|passwd|secret|api[_-]?key|access[_-]?key|private[_-]?key|auth[_-]?token)\\s*[:=]\\s*[\"'][^\"'\\s]{12,}/i"
56
+ languages:
57
+ - 通用
58
+ evidence_required:
59
+ - "regex_pattern_scan 扫描结果(命中须确认是否测试 fixture/文档示例,真实密钥必须改走环境变量或密钥管理)"
60
+ gate: shared-gate
61
+ target: self
31
62
  ---
32
63
 
33
- # shared-gate 跨阶段通用强制检查清单
64
+ # shared-gate 共享硬底线
65
+
66
+ 跨所有阶段、不可商量的底线。`gate_registry_bridge` 从此文件聚合到 shared-gate。分两类:
67
+
68
+ **SoloForge 自身架构边界**(守护引擎源码不被污染):
69
+ - `SHD-LLM01`:源码不直接调 LLM(error)—— 编排引擎不绑定模型
70
+ - `SHD-COMMENT01`:源码错误/日志中文(warning)
71
+
72
+ **用户项目代码安全底线**:
73
+ - `SEC-01`:私钥泄露(error,高确定性零误报)
74
+ - `SEC-02`:硬编码密钥(warning,可能误报测试 fixture,命中后人工确认)
34
75
 
35
- 跨阶段通用强制规则(所有研发阶段都适用,由 shared-gate 聚合)。
76
+ > 各域代码质量门禁(中文注释/无空 catch/类型安全/Controller 不含业务逻辑等)见对应域 enforced;路径穿越写入由运行时 scope_controller 强制,不在此重复。
@@ -0,0 +1,86 @@
1
+ ---
2
+ id: ka-guidance-反馈修复闭环
3
+ kind: guidance
4
+ title: 反馈修复闭环
5
+ sync_policy: copy_to_project
6
+ status: active
7
+ triggers:
8
+ - 验证失败
9
+ - 门禁失败
10
+ - 检查失败
11
+ - 修复
12
+ - fix
13
+ - 重试
14
+ - retry
15
+ - escalate
16
+ - 反馈
17
+ - 复验
18
+ - 修复闭环
19
+ - gate
20
+ - 复检
21
+ extra:
22
+ name: feedback-repair-loop
23
+ scope:
24
+ - '*'
25
+ products:
26
+ - '*'
27
+ type: procedure
28
+ lifecycle_status: active
29
+ version: 1.0.0
30
+ last_reviewed: '2026-06-17'
31
+ verification_layer: L2
32
+ stage: _global
33
+ owner_mechanism: mc-verifier
34
+ ---
35
+
36
+ # 反馈修复闭环:报错怎么修、修完怎么回来
37
+
38
+ > verify/gate 失败后,按本流程闭环。禁止假修复、禁止跳过。
39
+ > 这是把引擎 Reflexion 机制翻译成可执行步骤。
40
+
41
+ ## 第一步:读懂门禁反馈
42
+
43
+ verify 失败后,引擎把上次失败的 findings 注入回来。每条 finding 含:
44
+ - `id`:检查项编号(如 ARC-01、SEC-01)
45
+ - `severity`:`error`(必须修)/ `warning`(应当修)/ `info`(advisory 参考)
46
+ - `message`:技术原因(为什么失败)
47
+ - `evidence_required`:补什么证据才算修好
48
+
49
+ 还有一段大白话 `recovery_summary`:整体怎么了、该干什么、有什么 pending 项。
50
+
51
+ ## 第二步:逐条修复(按 severity 分流)
52
+
53
+ **error 级**(必须全修):
54
+ 1. 看 message 定位根因,不是只看表象([[工程执行总纲]] 思考先行)
55
+ 2. 按 evidence_required 补齐证据
56
+ 3. 修复限于同一限界上下文;跨越无关模块必须回到任务拆解
57
+
58
+ **warning 级**(尽量修):
59
+ - 影响小可记录风险后放行,但在交付说明里写清放行理由
60
+
61
+ **info 级(semantic)**:
62
+ - advisory 不阻断,但是给客户端 AI 的评判参考
63
+ - 必须认真评估,不能当没看见;评估结论写进交付说明
64
+
65
+ ## 第三步:修完回到哪一步重验
66
+
67
+ - 修复的是哪个阶段的产物,就回那个阶段用 `sf_work action=verify` 重验
68
+ - 引擎有 `pending_return` 机制:补产后 verify 通过,可恢复到原域继续推进
69
+ - 不要跨阶段乱跳(跳转受白名单约束)
70
+
71
+ ## 第四步:重试与 escalate
72
+
73
+ - 最多重试 5 次
74
+ - 5 次仍失败 → escalate,转人工,不要硬撑硬绕
75
+
76
+ ## 禁止
77
+
78
+ - 假修复(改了但没解决根因,下次还报)
79
+ - 删断言/降覆盖率/加无关 mock 让门禁过([[工程执行总纲]] 精准修改的硬失败)
80
+ - 隐藏失败 finding
81
+ - 把 advisory 结果当成 required 通过
82
+ - 没有重验就标记完成
83
+
84
+ ## 证据要求
85
+
86
+ 修复后必须给出:改了什么、对应哪条 finding、重验结果(命令 + 输出)。不接受「已修复」三字。
@@ -0,0 +1,148 @@
1
+ ---
2
+ id: ka-guidance-工程执行总纲
3
+ kind: guidance
4
+ title: 工程执行总纲
5
+ sync_policy: copy_to_project
6
+ status: active
7
+ triggers:
8
+ - 实现
9
+ - 编码
10
+ - 开发
11
+ - 重构
12
+ - 写代码
13
+ - 改bug
14
+ - 修复
15
+ - 设计
16
+ - 测试
17
+ - 验证
18
+ - 架构
19
+ - 部署
20
+ - 需求
21
+ - 排查
22
+ - 联调
23
+ - 改造
24
+ - 迁移
25
+ extra:
26
+ name: engineering-execution-charter
27
+ scope:
28
+ - '*'
29
+ products:
30
+ - '*'
31
+ type: constraint
32
+ lifecycle_status: active
33
+ version: 2.0.0
34
+ last_reviewed: '2026-06-17'
35
+ verification_layer: L2
36
+ stage: _global
37
+ owner_mechanism: mc-core-engineering-principles
38
+ ---
39
+
40
+ # 工程执行总纲
41
+
42
+ > 所有阶段(需求→设计→实现→测试)的元规则。资深工程师干活的四条硬原则。
43
+ > 每条都要证据证明,不接受 AI 自述。
44
+
45
+ ## 四条原则
46
+
47
+ ### 一、思考先行(Think Before Coding)
48
+
49
+ 编码前先明确:问题是什么、目标是什么、输入和约束是什么、哪里不确定。不假设、不隐藏困惑、不把模糊需求直接转成代码。
50
+
51
+ 必须做到:
52
+ - 区分「可推断事实」「假设」「需要用户确认的问题」
53
+ - 只问最小阻塞问题,不把非阻塞细节抛给用户
54
+ - 把不确定项记录为 assumption,不得假装确定
55
+
56
+ 硬失败(命中即停):
57
+ - 缺必要输入却开始写代码
58
+ - 写入范围不明确却修改文件
59
+ - 外部副作用权限不明确却执行命令
60
+ - 把未知事实写成确定结论
61
+
62
+ 不确定性分级:
63
+ - `blocking`:不问不能继续(写入路径、业务口径、破坏性操作)
64
+ - `material`:可先推进,但必须记录假设和风险
65
+ - `minor`:可合理默认,但在结果里说明
66
+
67
+ ### 二、简单优先(Simplicity First)
68
+
69
+ 用最少代码、最少抽象、最少新增文件解决已确认目标。不为未确认的未来需求提前设计。
70
+
71
+ 必须做到:
72
+ - 最少代码解决问题
73
+ - 引入新抽象/依赖/模块时说明必要性
74
+ - 不为简单 CRUD 强行套复杂模型
75
+
76
+ 硬失败:
77
+ - 为局部问题引入无必要新依赖
78
+ - 为简单修复新增大范围架构层
79
+ - 没有目标支撑却扩展公共 API/配置
80
+
81
+ 「简单」不是少做:
82
+ - 不写测试不叫简单
83
+ - 不接主链路不叫简单
84
+ - 不处理边界/不做错误处理不叫简单
85
+
86
+ ### 三、精准修改(Surgical Changes)
87
+
88
+ 只改必须改的。不顺便重构、不无关格式化、不扩大范围、不污染用户已有改动。
89
+
90
+ 必须做到:
91
+ - 只改必要文件、必要行、必要行为
92
+ - 遇到用户已有修改必须保护,不得回滚
93
+
94
+ 硬失败:
95
+ - 改范围外文件
96
+ - 改与目标无关的行为
97
+ - 未经确认回滚用户已有改动
98
+ - 大范围格式化掩盖真实变更
99
+ - 为让测试过而删断言/降覆盖率/加无关 mock
100
+
101
+ 允许的必要联动:
102
+ - 主链路接入必须改入口文件
103
+ - 类型变化必须改调用方
104
+ - schema 变化必须改 model/query/API
105
+ - contract 状态变化必须改 registry/测试
106
+
107
+ ### 四、目标驱动(Goal-Driven)
108
+
109
+ 先定可验证目标,再执行;执行后必须验证;失败要修并重验,直到通过或明确阻塞。
110
+
111
+ 必须做到:
112
+ - 明确目标和验收标准
113
+ - 禁止「功能正常」「看起来没问题」等模糊成功标准
114
+ - 输出未验证项和人工确认项
115
+
116
+ 硬失败:
117
+ - 没有可验证目标就开始实现
118
+ - 未执行验证却输出「全部通过」
119
+ - 验证失败仍标记完成
120
+ - 隐藏未验证项
121
+
122
+ ## 冲突优先级
123
+
124
+ 原则冲突时按此裁决:
125
+
126
+ ```
127
+ 安全/权限/隐私 > 目标驱动 > 思考先行 > 精准修改 > 简单优先
128
+ ```
129
+
130
+ - 不能为了简单牺牲验证
131
+ - 不能为了少改而不接主链路
132
+ - 不能为了快而隐藏阻塞不确定性
133
+ - 必要验证、必要入口接入、必要错误处理 优先于「少写代码」
134
+
135
+ ## 反规避(核心)
136
+
137
+ 四原则必须由证据证明,AI 自述无效。
138
+
139
+ 伪满足示例(都是违规):
140
+ - 说「已思考清楚」但没有输入/假设/目标证据
141
+ - 说「保持简单」但实际新增大抽象
142
+ - 说「只改必要文件」但 diff 有无关变更
143
+ - 说「验证通过」但没有真实证据
144
+ - 把未执行验证写成「建议验证」后仍标记完成
145
+ - 把用户没确认的业务口径写成事实
146
+
147
+ 自述不能代替:澄清记录 / 假设记录 / 目标定义 / 验证证据。
148
+ required 原则失败不能进入 completed。
@@ -0,0 +1,71 @@
1
+ ---
2
+ id: ka-guidance-工程纪律
3
+ kind: guidance
4
+ title: 工程纪律
5
+ sync_policy: copy_to_project
6
+ status: active
7
+ triggers:
8
+ - 命名
9
+ - 注释
10
+ - 职责
11
+ - 错误处理
12
+ - 异常
13
+ - 日志
14
+ - 代码风格
15
+ - 实现
16
+ - 编码
17
+ - 写代码
18
+ extra:
19
+ name: engineering-discipline
20
+ scope:
21
+ - '*'
22
+ products:
23
+ - '*'
24
+ type: constraint
25
+ lifecycle_status: active
26
+ version: 1.0.0
27
+ last_reviewed: '2026-06-17'
28
+ verification_layer: L2
29
+ stage: _global
30
+ owner_mechanism: mc-detail-discipline
31
+ ---
32
+
33
+ # 工程纪律(基本功)
34
+
35
+ > 合并命名/注释/单一职责/错误处理/日志的基本要求。这是代码质量的底线。
36
+ > 吸收旧的「工程纪律」「细节纪律」「通用机械条款」「代码注释与日志契约」「命名」等碎拆文件。
37
+
38
+ ## 命名
39
+
40
+ - 表达真实含义,禁止含糊/误导/过度缩写/无意义命名
41
+ - 好命名让人少看注释也能懂
42
+ - 命名和行为必须一致(叫 validate 就真的校验,别混着干别的)
43
+
44
+ ## 注释
45
+
46
+ - 解释**为什么**这样做、业务约束、历史原因、边界、风险
47
+ - 不复述代码(`// 给 i 加 1` 是废话)
48
+ - 代码注释、日志消息、用户可见错误提示一律简体中文,技术术语/标识符保留原文
49
+
50
+ ## 单一职责
51
+
52
+ - 一个函数只做一类事
53
+ - 一个函数同时做参数校验+权限判断+数据查询+状态计算+写入+发消息+记日志 → 拆分
54
+ - 单文件/单类职责清晰,避免上帝对象(>20 字段考虑拆分聚合根)
55
+
56
+ ## 错误处理
57
+
58
+ - 禁止空 catch(至少记日志,不得静默吞异常)
59
+ - 错误信息说清楚:哪步失败、关键参数、可能原因、下一步怎么做
60
+ - 用户可见错误用中文;日志用中文,标识符保留原文
61
+
62
+ ## 日志
63
+
64
+ - 统一走 logger(`userInfo`/`userWarn`/`userError`/`debug`/`internalWarn`),禁止 `console.log/error/warn` 直接调用
65
+ - 关键路径有可观测日志,便于排查
66
+ - 敏感信息不得进日志(密钥、token、个人隐私)
67
+
68
+ ## 数据写入边界
69
+
70
+ - 不得向 `.soloforge/tasks/`、`.env`、`.git/`、`node_modules/` 写入(安全底线)
71
+ - 写文件用原子写,避免半写状态