soloforge 1.1.46 → 1.1.48

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 (451) hide show
  1. package/README.md +23 -7
  2. package/dist/cli/adapter_writers.d.ts +5 -0
  3. package/dist/cli/adapter_writers.d.ts.map +1 -1
  4. package/dist/cli/adapter_writers.js +25 -0
  5. package/dist/cli/adapter_writers.js.map +1 -1
  6. package/dist/cli/init.d.ts.map +1 -1
  7. package/dist/cli/init.js +3 -1
  8. package/dist/cli/init.js.map +1 -1
  9. package/dist/cli/scope_check.d.ts +4 -0
  10. package/dist/cli/scope_check.d.ts.map +1 -0
  11. package/dist/cli/scope_check.js +41 -0
  12. package/dist/cli/scope_check.js.map +1 -0
  13. package/dist/context/adapters/claude_code/hooks.d.ts +5 -7
  14. package/dist/context/adapters/claude_code/hooks.d.ts.map +1 -1
  15. package/dist/context/adapters/claude_code/hooks.js +11 -9
  16. package/dist/context/adapters/claude_code/hooks.js.map +1 -1
  17. package/dist/context/adapters/shared/integration_guide.js +18 -6
  18. package/dist/context/adapters/shared/integration_guide.js.map +1 -1
  19. package/dist/context/adapters/shared/workflow_template.js +1 -1
  20. package/dist/context/config/intent_schema.d.ts +793 -6
  21. package/dist/context/config/intent_schema.d.ts.map +1 -1
  22. package/dist/context/config/intent_schema.js +9 -0
  23. package/dist/context/config/intent_schema.js.map +1 -1
  24. package/dist/context/config/resolver.d.ts +9 -0
  25. package/dist/context/config/resolver.d.ts.map +1 -1
  26. package/dist/context/config/resolver.js +5 -0
  27. package/dist/context/config/resolver.js.map +1 -1
  28. package/dist/core/adversarial_review_store.d.ts +133 -0
  29. package/dist/core/adversarial_review_store.d.ts.map +1 -0
  30. package/dist/core/adversarial_review_store.js +161 -0
  31. package/dist/core/adversarial_review_store.js.map +1 -0
  32. package/dist/core/domain_transition.d.ts.map +1 -1
  33. package/dist/core/domain_transition.js +3 -0
  34. package/dist/core/domain_transition.js.map +1 -1
  35. package/dist/core/gate_record_store.d.ts +13 -7
  36. package/dist/core/gate_record_store.d.ts.map +1 -1
  37. package/dist/core/gate_record_store.js +39 -17
  38. package/dist/core/gate_record_store.js.map +1 -1
  39. package/dist/core/git_utils.d.ts +1 -1
  40. package/dist/core/git_utils.js +1 -1
  41. package/dist/core/observer.d.ts.map +1 -1
  42. package/dist/core/observer.js +33 -6
  43. package/dist/core/observer.js.map +1 -1
  44. package/dist/core/task_context/constants.js +1 -1
  45. package/dist/core/task_context/constants.js.map +1 -1
  46. package/dist/core/task_context/manager.d.ts +4 -0
  47. package/dist/core/task_context/manager.d.ts.map +1 -1
  48. package/dist/core/task_context/manager.js +48 -30
  49. package/dist/core/task_context/manager.js.map +1 -1
  50. package/dist/core/task_context/manager_setters.d.ts +2 -0
  51. package/dist/core/task_context/manager_setters.d.ts.map +1 -1
  52. package/dist/core/task_context/manager_setters.js +10 -0
  53. package/dist/core/task_context/manager_setters.js.map +1 -1
  54. package/dist/core/types.d.ts +19 -0
  55. package/dist/core/types.d.ts.map +1 -1
  56. package/dist/domain/asset_registry/derived_registry.d.ts.map +1 -1
  57. package/dist/domain/asset_registry/derived_registry.js +20 -5
  58. package/dist/domain/asset_registry/derived_registry.js.map +1 -1
  59. package/dist/domain/asset_registry/derived_types.d.ts +22 -1
  60. package/dist/domain/asset_registry/derived_types.d.ts.map +1 -1
  61. package/dist/domain/build/contract.d.ts.map +1 -1
  62. package/dist/domain/build/contract.js +3 -8
  63. package/dist/domain/build/contract.js.map +1 -1
  64. package/dist/domain/build/engine.d.ts +4 -2
  65. package/dist/domain/build/engine.d.ts.map +1 -1
  66. package/dist/domain/build/engine.js +38 -5
  67. package/dist/domain/build/engine.js.map +1 -1
  68. package/dist/domain/contracts/design_lifecycle_contract.d.ts.map +1 -1
  69. package/dist/domain/contracts/design_lifecycle_contract.js +11 -4
  70. package/dist/domain/contracts/design_lifecycle_contract.js.map +1 -1
  71. package/dist/domain/design/contract.d.ts.map +1 -1
  72. package/dist/domain/design/contract.js +13 -31
  73. package/dist/domain/design/contract.js.map +1 -1
  74. package/dist/domain/design/engine.d.ts +4 -2
  75. package/dist/domain/design/engine.d.ts.map +1 -1
  76. package/dist/domain/design/engine.js +39 -4
  77. package/dist/domain/design/engine.js.map +1 -1
  78. package/dist/domain/engine_helpers.d.ts +55 -2
  79. package/dist/domain/engine_helpers.d.ts.map +1 -1
  80. package/dist/domain/engine_helpers.js +173 -8
  81. package/dist/domain/engine_helpers.js.map +1 -1
  82. package/dist/domain/operate/contract.js +1 -1
  83. package/dist/domain/operate/contract.js.map +1 -1
  84. package/dist/domain/operate/engine.d.ts +4 -2
  85. package/dist/domain/operate/engine.d.ts.map +1 -1
  86. package/dist/domain/operate/engine.js +23 -3
  87. package/dist/domain/operate/engine.js.map +1 -1
  88. package/dist/domain/types.d.ts +6 -0
  89. package/dist/domain/types.d.ts.map +1 -1
  90. package/dist/domain/types.js.map +1 -1
  91. package/dist/domain/verify/engine.d.ts +4 -2
  92. package/dist/domain/verify/engine.d.ts.map +1 -1
  93. package/dist/domain/verify/engine.js +22 -2
  94. package/dist/domain/verify/engine.js.map +1 -1
  95. package/dist/gate/contracts/tool_actions.d.ts +2 -2
  96. package/dist/gate/contracts/tool_actions.d.ts.map +1 -1
  97. package/dist/gate/contracts/tool_actions.js +2 -2
  98. package/dist/gate/contracts/tool_actions.js.map +1 -1
  99. package/dist/gate/contracts/tool_invocation_contract_registry.js +1 -1
  100. package/dist/gate/contracts/tool_invocation_contract_registry.js.map +1 -1
  101. package/dist/gate/executors/executors_artifact.d.ts +19 -0
  102. package/dist/gate/executors/executors_artifact.d.ts.map +1 -1
  103. package/dist/gate/executors/executors_artifact.js +108 -8
  104. package/dist/gate/executors/executors_artifact.js.map +1 -1
  105. package/dist/gate/executors/executors_build.d.ts.map +1 -1
  106. package/dist/gate/executors/executors_build.js +17 -15
  107. package/dist/gate/executors/executors_build.js.map +1 -1
  108. package/dist/gate/executors/executors_external_command.d.ts.map +1 -1
  109. package/dist/gate/executors/executors_external_command.js +32 -0
  110. package/dist/gate/executors/executors_external_command.js.map +1 -1
  111. package/dist/gate/executors/executors_field_mapping.d.ts +7 -0
  112. package/dist/gate/executors/executors_field_mapping.d.ts.map +1 -0
  113. package/dist/gate/executors/executors_field_mapping.js +179 -0
  114. package/dist/gate/executors/executors_field_mapping.js.map +1 -0
  115. package/dist/gate/executors/executors_prerequisite.d.ts.map +1 -1
  116. package/dist/gate/executors/executors_prerequisite.js +27 -7
  117. package/dist/gate/executors/executors_prerequisite.js.map +1 -1
  118. package/dist/gate/executors/executors_regex_scan.d.ts.map +1 -1
  119. package/dist/gate/executors/executors_regex_scan.js +36 -15
  120. package/dist/gate/executors/executors_regex_scan.js.map +1 -1
  121. package/dist/gate/executors/executors_scope.js +4 -4
  122. package/dist/gate/executors/executors_scope.js.map +1 -1
  123. package/dist/gate/executors/executors_trace.d.ts +5 -0
  124. package/dist/gate/executors/executors_trace.d.ts.map +1 -1
  125. package/dist/gate/executors/executors_trace.js +186 -3
  126. package/dist/gate/executors/executors_trace.js.map +1 -1
  127. package/dist/gate/executors/index.d.ts.map +1 -1
  128. package/dist/gate/executors/index.js +2 -0
  129. package/dist/gate/executors/index.js.map +1 -1
  130. package/dist/gate/gate_engine.d.ts +9 -0
  131. package/dist/gate/gate_engine.d.ts.map +1 -1
  132. package/dist/gate/gate_engine.js +15 -0
  133. package/dist/gate/gate_engine.js.map +1 -1
  134. package/dist/gate/gate_registry_bridge.d.ts +9 -8
  135. package/dist/gate/gate_registry_bridge.d.ts.map +1 -1
  136. package/dist/gate/gate_registry_bridge.js +57 -16
  137. package/dist/gate/gate_registry_bridge.js.map +1 -1
  138. package/dist/gate/middleware_gates.js +1 -1
  139. package/dist/gate/middleware_gates.js.map +1 -1
  140. package/dist/gate/scope_resolver.d.ts +7 -0
  141. package/dist/gate/scope_resolver.d.ts.map +1 -1
  142. package/dist/gate/scope_resolver.js +1 -1
  143. package/dist/gate/scope_resolver.js.map +1 -1
  144. package/dist/index.js +5 -0
  145. package/dist/index.js.map +1 -1
  146. package/dist/server/tools/sf_doctor.d.ts +2 -0
  147. package/dist/server/tools/sf_doctor.d.ts.map +1 -1
  148. package/dist/server/tools/sf_doctor.js +35 -1
  149. package/dist/server/tools/sf_doctor.js.map +1 -1
  150. package/dist/server/tools/sf_gate.d.ts +1 -1
  151. package/dist/server/tools/sf_gate.js +2 -2
  152. package/dist/server/tools/sf_gate.js.map +1 -1
  153. package/dist/server/tools/sf_task.d.ts +83 -0
  154. package/dist/server/tools/sf_task.d.ts.map +1 -1
  155. package/dist/server/tools/sf_task.js +121 -4
  156. package/dist/server/tools/sf_task.js.map +1 -1
  157. package/dist/server/tools/sf_work.d.ts +203 -0
  158. package/dist/server/tools/sf_work.d.ts.map +1 -1
  159. package/dist/server/tools/sf_work.js +549 -46
  160. package/dist/server/tools/sf_work.js.map +1 -1
  161. package/dist/shared/traceability_id_utils.js +3 -3
  162. package/dist/shared/traceability_id_utils.js.map +1 -1
  163. package/dist/verify/contracts/decision_workshop.d.ts.map +1 -1
  164. package/dist/verify/contracts/decision_workshop.js +4 -3
  165. package/dist/verify/contracts/decision_workshop.js.map +1 -1
  166. package/package.json +2 -1
  167. package/templates/build/enforced.md +299 -39
  168. package/templates/build//344/270/223/351/241/271/345/256/236/347/216/260.md +75 -0
  169. package/templates/build//345/256/211/345/205/250/345/212/240/345/233/272.md +75 -0
  170. package/templates/build//346/263/250/351/207/212/347/272/252/345/276/213.md +48 -0
  171. package/templates/build//346/265/213/350/257/225/344/274/230/345/205/210/347/274/226/347/240/201.md +50 -79
  172. package/templates/build//346/265/213/350/257/225/350/256/241/345/210/222.md +31 -24
  173. package/templates/build//347/274/226/347/240/201/347/272/252/345/276/213.md +101 -0
  174. package/templates/build//350/260/203/350/257/225/346/216/222/346/237/245.md +44 -75
  175. package/templates/build//351/207/215/346/236/204/346/226/271/346/263/225.md +68 -0
  176. package/templates/design/API/346/216/245/345/217/243/350/247/204/346/240/274/346/226/207/346/241/243.md +38 -28
  177. package/templates/design/enforced.md +234 -74
  178. 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 +5 -2
  179. 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
  180. package/templates/design//345/206/263/347/255/226/344/270/216/351/200/211/345/236/213.md +70 -0
  181. package/templates/design//345/210/207/347/211/207/350/247/204/345/210/222.md +51 -55
  182. package/templates/design//345/274/200/345/217/221/345/210/207/347/211/207/350/256/241/345/210/222.md +75 -0
  183. 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 +35 -47
  184. package/templates/design//346/236/266/346/236/204/350/256/276/350/256/241.md +63 -81
  185. package/templates/design//350/256/276/350/256/241/345/206/263/347/255/226/347/272/252/345/276/213.md +58 -0
  186. package/templates/design//350/256/276/350/256/241/350/264/250/351/207/217/350/246/201/347/202/271.md +58 -0
  187. package/templates/design//351/234/200/346/261/202/345/210/206/346/236/220.md +49 -53
  188. package/templates/operate/UI/350/247/206/350/247/211/351/252/214/346/224/266/347/272/252/345/276/213.md +74 -0
  189. package/templates/operate/enforced.md +52 -5
  190. package/templates/operate//344/270/212/347/272/277/350/247/202/345/257/237.md +53 -32
  191. package/templates/operate//345/217/221/345/270/203/350/257/264/346/230/216.md +22 -1
  192. package/templates/operate//351/203/250/347/275/262/351/205/215/347/275/256.md +93 -0
  193. package/templates/shared/enforced.md +83 -5
  194. package/templates/shared//345/217/215/351/246/210/344/277/256/345/244/215/351/227/255/347/216/257.md +86 -0
  195. package/templates/shared//345/267/245/344/275/234/346/265/201/345/257/274/350/210/252/345/245/221/347/272/246.md +1 -1
  196. package/templates/shared//345/267/245/347/250/213/346/211/247/350/241/214/346/200/273/347/272/262.md +148 -0
  197. package/templates/shared//345/267/245/347/250/213/347/272/252/345/276/213.md +71 -0
  198. package/templates/shared//345/274/200/345/217/221/350/200/205/345/256/252/346/263/225.md +48 -43
  199. package/templates/shared//346/234/272/345/210/266/350/257/264/346/230/216.md +67 -0
  200. package/templates/shared//347/240/224/350/256/250/350/256/260/345/275/225.md +54 -0
  201. 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
  202. package/templates/shared//350/264/241/347/214/256/350/247/204/350/214/203.md +78 -0
  203. package/templates/verify/enforced.md +87 -263
  204. 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 +46 -87
  205. package/templates/verify//344/273/243/347/240/201/345/256/241/346/237/245/346/212/245/345/221/212.md +17 -0
  206. package/templates/verify//345/256/241/346/237/245/346/270/205/345/215/225.md +79 -0
  207. package/templates/verify//346/236/266/346/236/204/350/257/255/344/271/211/347/272/242/347/272/277.md +60 -0
  208. package/templates/verify//351/252/214/350/257/201/346/226/271/346/263/225.md +72 -0
  209. package/dist/core/scope_checker.d.ts +0 -29
  210. package/dist/core/scope_checker.d.ts.map +0 -1
  211. package/dist/core/scope_checker.js +0 -53
  212. package/dist/core/scope_checker.js.map +0 -1
  213. package/templates/build/Bug/345/210/206/346/236/220.md +0 -59
  214. package/templates/build/Git/346/223/215/344/275/234.md +0 -48
  215. package/templates/build/OOD/350/256/276/350/256/241/346/221/230/350/246/201.md +0 -46
  216. package/templates/build/React/346/216/245/345/217/243/351/233/206/346/210/220.md +0 -42
  217. package/templates/build/Schema/345/217/230/346/233/264/346/265/201/346/260/264/347/272/277.md +0 -52
  218. package/templates/build/TS/350/264/250/351/207/217/345/256/241/346/237/245.md +0 -78
  219. package/templates/build//344/270/212/346/270/270/344/272/244/345/217/211/351/252/214/350/257/201.md +0 -68
  220. 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
  221. package/templates/build//344/273/243/347/240/201/351/227/250/347/246/201.md +0 -58
  222. package/templates/build//345/205/250/346/240/210/346/265/201/347/250/213/344/277/256/345/244/215.md +0 -48
  223. package/templates/build//345/210/207/347/211/207/346/211/247/350/241/214/347/272/252/345/276/213.md +0 -108
  224. 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
  225. package/templates/build//345/212/237/350/203/275/345/274/200/345/217/221.md +0 -66
  226. package/templates/build//345/220/216/347/253/257/345/256/236/347/216/260.md +0 -39
  227. package/templates/build//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213.md +0 -33
  228. 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
  229. package/templates/build//345/220/216/347/253/257/346/216/245/345/217/243/345/256/236/347/216/260.md +0 -43
  230. package/templates/build//345/233/275/351/231/205/345/214/226.md +0 -45
  231. 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
  232. package/templates/build//345/256/211/345/205/250/345/256/241/346/237/245.md +0 -154
  233. package/templates/build//345/256/211/345/205/250/345/256/241/350/256/241.md +0 -47
  234. package/templates/build//345/267/245/347/250/213/347/272/252/345/276/213.md +0 -56
  235. package/templates/build//346/200/247/350/203/275/345/210/206/346/236/220.md +0 -59
  236. package/templates/build//346/200/247/350/203/275/346/265/201/346/260/264/347/272/277.md +0 -53
  237. 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
  238. package/templates/build//346/225/260/346/215/256/345/272/223/350/277/201/347/247/273.md +0 -63
  239. 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
  240. package/templates/build//346/235/203/351/231/220/350/256/244/350/257/201.md +0 -49
  241. package/templates/build//346/265/213/350/257/225/350/264/250/351/207/217.md +0 -45
  242. package/templates/build//347/206/224/346/226/255/351/231/215/347/272/247.md +0 -49
  243. package/templates/build//347/212/266/346/200/201/346/265/201/350/275/254.md +0 -43
  244. package/templates/build//347/213/254/347/253/213/345/256/241/346/237/245.md +0 -45
  245. package/templates/build//347/272/246/346/235/237/345/256/236/347/216/260.md +0 -47
  246. package/templates/build//347/274/226/347/240/201/345/260/261/347/273/252/345/256/241/346/237/245.md +0 -60
  247. package/templates/build//347/274/226/347/240/201/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -22
  248. package/templates/build//347/274/226/347/240/201/350/264/250/351/207/217.md +0 -46
  249. package/templates/build//347/274/226/347/240/201/351/230/266/346/256/265/346/211/247/350/241/214.md +0 -105
  250. package/templates/build//347/274/272/351/231/267/347/256/241/347/220/206.md +0 -47
  251. package/templates/build//350/200/246/345/220/210/346/243/200/346/265/213.md +0 -86
  252. package/templates/build//350/246/206/347/233/226/347/216/207/346/240/207/345/207/206.md +0 -40
  253. package/templates/build//350/264/250/351/207/217/345/256/241/346/237/245.md +0 -111
  254. package/templates/build//350/277/201/347/247/273/346/265/201/346/260/264/347/272/277.md +0 -52
  255. package/templates/build//351/200/232/347/224/250/350/264/250/351/207/217.md +0 -176
  256. package/templates/build//351/207/215/346/236/204/346/226/271/346/241/210.md +0 -61
  257. package/templates/build//351/207/215/346/236/204/346/265/201/346/260/264/347/272/277.md +0 -53
  258. package/templates/build//351/230/262/345/276/241/346/200/247/347/274/226/347/240/201.md +0 -94
  259. package/templates/build//351/233/206/346/210/220/351/252/214/350/257/201.md +0 -67
  260. package/templates/build//351/233/267/345/214/272/345/217/215/346/250/241/345/274/217.md +0 -135
  261. package/templates/build//351/252/214/346/224/266/346/240/207/345/207/206/345/256/241/346/237/245.md +0 -64
  262. package/templates/build//351/252/214/346/224/266/346/265/213/350/257/225/350/247/204/345/210/222.md +0 -75
  263. package/templates/design/API/350/256/276/350/256/241.md +0 -47
  264. package/templates/design/N/345/212/2401/346/237/245/350/257/242.md +0 -48
  265. package/templates/design/OOD/350/256/276/350/256/241.md +0 -72
  266. package/templates/design//344/270/200/350/207/264/346/200/247/346/240/241/351/252/214.md +0 -109
  267. 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
  268. package/templates/design//344/273/273/345/212/241/346/213/206/350/247/243.md +0 -61
  269. package/templates/design//344/273/273/345/212/241/350/247/204/345/210/222.md +0 -84
  270. package/templates/design//344/274/232/350/257/235/346/201/242/345/244/215-procedures.md +0 -78
  271. package/templates/design//345/205/274/345/256/271/346/200/247/346/243/200/346/237/245.md +0 -89
  272. package/templates/design//345/210/207/347/211/207/350/256/241/345/210/222.md +0 -149
  273. package/templates/design//345/211/215/347/253/257/346/200/247/350/203/275.md +0 -49
  274. 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
  275. package/templates/design//345/216/237/345/236/213/346/272/220/347/240/201/346/217/220/345/217/226.md +0 -78
  276. package/templates/design//345/216/237/345/236/213/350/257/264/346/230/216.md +0 -200
  277. package/templates/design//345/216/237/345/236/213/350/257/264/346/230/216/345/256/241/346/237/245.md +0 -81
  278. 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
  279. package/templates/design//345/221/275/344/273/244/346/211/247/350/241/214-procedures.md +0 -45
  280. package/templates/design//345/221/275/344/273/244/350/267/257/347/224/261-procedures.md +0 -46
  281. package/templates/design//345/221/275/345/220/215.md +0 -49
  282. 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
  283. package/templates/design//345/267/245/345/205/267/350/260/203/347/224/250-procedures.md +0 -41
  284. package/templates/design//345/271/266/345/217/221/346/216/247/345/210/266.md +0 -50
  285. package/templates/design//346/212/200/346/234/257/351/200/211/345/236/213.md +0 -33
  286. package/templates/design//346/216/245/345/217/243/345/257/271/346/216/245/346/226/271/346/241/210.md +0 -97
  287. 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
  288. 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
  289. package/templates/design//346/225/260/346/215/256/350/241/200/347/274/230/345/233/276.md +0 -49
  290. package/templates/design//346/227/240/351/232/234/347/242/215.md +0 -49
  291. package/templates/design//346/236/266/346/236/204/345/206/263/347/255/226/350/256/260/345/275/225.md +0 -53
  292. package/templates/design//346/236/266/346/236/204/345/256/241/346/237/245.md +0 -256
  293. package/templates/design//346/236/266/346/236/204/350/256/276/350/256/241-constraints.md +0 -177
  294. package/templates/design//346/236/266/346/236/204/350/256/276/350/256/241-procedures.md +0 -130
  295. 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
  296. package/templates/design//346/272/220/347/240/201/345/216/237/345/236/213/344/272/244/344/273/230.md +0 -58
  297. 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
  298. 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
  299. 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
  300. package/templates/design//347/264/247/346/200/245/345/233/236/346/273/232/346/211/213/345/206/214.md +0 -77
  301. package/templates/design//347/274/226/347/240/201/345/211/215/346/276/204/346/270/205.md +0 -85
  302. 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
  303. package/templates/design//350/207/252/344/270/273/351/200/211/345/236/213.md +0 -57
  304. 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
  305. 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
  306. package/templates/design//350/256/276/350/256/241/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -21
  307. package/templates/design//350/257/246/347/273/206/350/256/276/350/256/241-procedures.md +0 -123
  308. package/templates/design//350/257/246/347/273/206/350/256/276/350/256/241.md +0 -109
  309. package/templates/design//350/257/246/347/273/206/350/256/276/350/256/241/345/256/241/346/237/245.md +0 -88
  310. package/templates/design//350/260/203/350/257/225/346/226/271/346/263/225/350/256/272.md +0 -43
  311. package/templates/design//350/277/201/347/247/273/350/257/204/344/274/260.md +0 -67
  312. 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
  313. package/templates/design//351/234/200/346/261/202/346/276/204/346/270/205.md +0 -65
  314. package/templates/design//351/234/200/346/261/202/350/264/250/351/207/217/345/256/241/346/237/245.md +0 -88
  315. package/templates/design//351/242/206/345/237/237/351/251/261/345/212/250/350/256/276/350/256/241.md +0 -43
  316. package/templates/operate//345/217/221/345/270/203/350/257/264/346/230/216/345/256/241/346/237/245.md +0 -60
  317. package/templates/operate//350/277/220/347/273/264/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -22
  318. package/templates/operate//351/203/250/347/275/262/351/205/215/347/275/256/345/256/241/346/237/245.md +0 -59
  319. package/templates/shared/Diff/345/275/222/345/261/236/350/277/275/350/270/252.md +0 -55
  320. package/templates/shared/Java/350/264/250/351/207/217/351/227/250/347/246/201.md +0 -54
  321. package/templates/shared/OOD/344/270/216SOLID/350/256/276/350/256/241.md +0 -48
  322. package/templates/shared//344/272/247/347/211/251Schema/346/263/250/345/206/214/344/270/255/345/277/203.md +0 -57
  323. package/templates/shared//344/272/247/347/211/251/345/245/221/347/272/246.md +0 -44
  324. 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
  325. 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
  326. package/templates/shared//344/273/273/345/212/241/347/212/266/346/200/201/346/234/272.md +0 -55
  327. package/templates/shared//344/273/273/345/212/241/347/256/241/347/220/206/345/231/250.md +0 -55
  328. package/templates/shared//344/274/230/351/233/205/345/201/234/346/234/272.md +0 -43
  329. 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
  330. package/templates/shared//344/275/234/347/224/250/345/237/237/347/247/237/347/272/246.md +0 -55
  331. package/templates/shared//345/206/262/347/252/201/351/227/250/347/246/201.md +0 -55
  332. package/templates/shared//345/206/263/347/255/226/347/275/221/345/205/263.md +0 -47
  333. package/templates/shared//345/210/207/347/211/207/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -72
  334. package/templates/shared//345/217/230/345/274/202/345/256/241/350/256/241.md +0 -58
  335. 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
  336. package/templates/shared//345/221/275/344/273/244/346/211/247/350/241/214.md +0 -48
  337. package/templates/shared//345/221/275/344/273/244/350/267/257/347/224/261.md +0 -45
  338. package/templates/shared//345/233/236/345/275/222/347/237/251/351/230/265.md +0 -54
  339. package/templates/shared//345/244/232/347/247/237/346/210/267.md +0 -49
  340. package/templates/shared//345/256/241/350/256/241/346/227/245/345/277/227.md +0 -46
  341. package/templates/shared//345/257/274/345/205/245/345/257/274/345/207/272.md +0 -51
  342. package/templates/shared//345/267/245/344/275/234/345/214/272/344/272/222/346/226/245/351/224/201.md +0 -52
  343. package/templates/shared//345/267/245/344/275/234/345/214/272/345/224/244/351/206/222.md +0 -54
  344. package/templates/shared//345/267/245/344/275/234/346/265/201/345/245/221/347/272/246.md +0 -42
  345. package/templates/shared//345/267/245/344/275/234/346/265/201/345/274/225/346/223/216.md +0 -50
  346. package/templates/shared//345/267/245/344/275/234/346/265/201/346/250/241/347/211/210/345/214/205.md +0 -34
  347. package/templates/shared//345/267/245/345/205/267/350/260/203/347/224/250.md +0 -48
  348. package/templates/shared//345/271/266/345/217/221/351/224/201.md +0 -57
  349. package/templates/shared//346/211/247/350/241/214/345/256/210/345/215/253/350/257/204/344/274/260.md +0 -47
  350. package/templates/shared//346/211/251/345/261/225/347/224/237/345/221/275/345/221/250/346/234/237.md +0 -34
  351. package/templates/shared//346/212/200/346/234/257/345/206/263/347/255/226/344/270/273/346/235/203.md +0 -50
  352. package/templates/shared//346/212/245/350/241/250/347/273/237/350/256/241.md +0 -50
  353. package/templates/shared//346/224/257/344/273/230.md +0 -51
  354. package/templates/shared//346/225/217/346/204/237/344/277/241/346/201/257/345/244/204/347/220/206.md +0 -77
  355. package/templates/shared//346/225/217/346/204/237/344/277/241/346/201/257/346/211/253/346/217/217.md +0 -53
  356. package/templates/shared//346/225/260/346/215/256/346/235/203/351/231/220.md +0 -47
  357. package/templates/shared//346/226/275/345/267/245/346/214/207/344/273/244/345/245/221/347/272/246.md +0 -69
  358. package/templates/shared//346/227/245/345/277/227/346/262/273/347/220/206.md +0 -31
  359. package/templates/shared//346/234/272/345/210/266/350/207/252/346/262/273/347/220/206.md +0 -31
  360. package/templates/shared//346/240/207/345/207/206/350/265/204/344/272/247/350/246/206/347/233/226.md +0 -50
  361. package/templates/shared//346/240/270/345/277/203/344/275/223/351/252/214/345/216/237/345/210/231.md +0 -38
  362. 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
  363. package/templates/shared//346/250/241/347/211/210Frontmatter.md +0 -125
  364. package/templates/shared//346/250/241/347/211/210/350/264/241/347/214/256/346/214/207/345/215/227.md +0 -282
  365. 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
  366. 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
  367. 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
  368. package/templates/shared//346/274/224/350/277/233/345/233/236/345/275/222/351/227/250/346/216/247.md +0 -50
  369. package/templates/shared//347/224/250/346/210/267/345/217/215/351/246/210/345/245/221/347/272/246.md +0 -86
  370. package/templates/shared//347/237/245/350/257/206/344/270/273/346/235/203.md +0 -66
  371. package/templates/shared//347/237/245/350/257/206/346/262/273/347/220/206.md +0 -31
  372. package/templates/shared//347/237/245/350/257/206/346/263/250/345/205/245/350/276/271/347/225/214.md +0 -47
  373. package/templates/shared//347/273/206/350/212/202/347/272/252/345/276/213.md +0 -54
  374. 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
  375. package/templates/shared//350/256/241/345/210/222/345/211/215/347/275/256/351/227/250.md +0 -47
  376. package/templates/shared//350/256/276/350/256/241/344/272/247/347/211/251/345/214/205.md +0 -58
  377. package/templates/shared//350/257/255/344/271/211/350/257/201/346/215/256.md +0 -55
  378. 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
  379. package/templates/shared//350/276/223/345/205/245/346/235/220/346/226/231/345/245/221/347/272/246.md +0 -50
  380. package/templates/shared//350/277/220/350/241/214/345/256/211/345/205/250/345/214/205.md +0 -58
  381. package/templates/shared//351/200/232/347/224/250/345/206/263/347/255/226/347/240/224/350/256/250.md +0 -62
  382. package/templates/shared//351/200/232/347/224/250/346/234/272/346/242/260/346/235/241/346/254/276.md +0 -47
  383. package/templates/shared//351/200/232/347/237/245.md +0 -50
  384. package/templates/shared//351/203/250/347/275/262/351/205/215/347/275/256.md +0 -14
  385. package/templates/shared//351/205/215/347/275/256/344/274/230/345/205/210/347/272/247.md +0 -67
  386. package/templates/shared//351/205/215/347/275/256/350/220/275/347/233/230/350/276/271/347/225/214.md +0 -32
  387. package/templates/shared//351/230/262/345/255/244/345/262/233/345/256/236/347/216/260.md +0 -51
  388. package/templates/shared//351/233/266/351/205/215/347/275/256/345/210/235/345/247/213/345/214/226.md +0 -57
  389. 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
  390. package/templates/shared//351/252/214/350/257/201/345/221/275/344/273/244/347/224/237/346/210/220.md +0 -55
  391. package/templates/shared//351/252/214/350/257/201/345/245/221/347/272/246.md +0 -48
  392. package/templates/verify/Docker/351/203/250/347/275/262.md +0 -46
  393. package/templates/verify/POC/347/273/223/350/256/272.md +0 -53
  394. package/templates/verify/React/345/210/227/350/241/250/350/241/250/346/240/274.md +0 -43
  395. package/templates/verify/React/347/212/266/346/200/201/347/256/241/347/220/206.md +0 -42
  396. package/templates/verify/React/347/273/204/344/273/266.md +0 -42
  397. package/templates/verify/React/350/241/250/345/215/225.md +0 -43
  398. package/templates/verify/React/350/267/257/347/224/261.md +0 -43
  399. package/templates/verify/SOLID/344/273/243/347/240/201/345/256/241/346/237/245.md +0 -74
  400. package/templates/verify/SOLID/350/256/276/350/256/241.md +0 -31
  401. package/templates/verify/Schema/345/205/274/345/256/271.md +0 -42
  402. package/templates/verify/Vue/347/212/266/346/200/201/347/256/241/347/220/206.md +0 -42
  403. package/templates/verify/Vue/347/273/204/344/273/266.md +0 -42
  404. package/templates/verify/Vue/350/267/257/347/224/261.md +0 -43
  405. 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
  406. package/templates/verify//344/270/273/351/223/276/350/267/257/346/216/245/345/205/245.md +0 -38
  407. package/templates/verify//344/272/213/344/273/266/351/251/261/345/212/250.md +0 -46
  408. package/templates/verify//344/272/213/345/212/241/346/250/241/345/274/217.md +0 -42
  409. 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
  410. 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
  411. package/templates/verify//344/274/232/350/257/235/346/201/242/345/244/215.md +0 -46
  412. 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
  413. package/templates/verify//345/210/206/351/241/265/346/237/245/350/257/242.md +0 -41
  414. package/templates/verify//345/211/215/347/253/257/351/241/265/351/235/242.md +0 -40
  415. 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
  416. package/templates/verify//345/217/221/345/270/203/345/220/216/345/256/241/346/237/245.md +0 -73
  417. package/templates/verify//345/220/216/347/253/257API.md +0 -39
  418. package/templates/verify//345/242/236/345/210/240/346/224/271/346/237/245.md +0 -45
  419. package/templates/verify//345/244/226/351/203/250/344/276/235/350/265/226.md +0 -43
  420. package/templates/verify//345/245/221/347/272/246/345/205/274/345/256/271.md +0 -42
  421. package/templates/verify//345/256/232/346/227/266/344/273/273/345/212/241.md +0 -39
  422. package/templates/verify//345/256/236/346/227/266/346/216/250/351/200/201.md +0 -48
  423. package/templates/verify//345/256/241/346/237/245/346/221/230/350/246/201.md +0 -58
  424. package/templates/verify//345/267/245/344/275/234/346/265/201.md +0 -38
  425. package/templates/verify//345/271/266/345/217/221/345/256/241/346/237/245.md +0 -132
  426. package/templates/verify//345/274/202/346/255/245/345/257/274/345/207/272.md +0 -41
  427. package/templates/verify//346/200/247/350/203/275/345/256/241/346/237/245.md +0 -110
  428. package/templates/verify//346/216/245/345/217/243/345/245/221/347/272/246.md +0 -44
  429. package/templates/verify//346/216/245/345/217/243/345/245/221/347/272/246/345/256/241/346/237/245.md +0 -131
  430. package/templates/verify//346/220/234/347/264/242/346/250/241/345/274/217.md +0 -47
  431. package/templates/verify//346/225/205/351/232/234/345/244/215/347/233/230.md +0 -67
  432. package/templates/verify//346/225/260/346/215/256/345/272/223/345/217/230/346/233/264.md +0 -37
  433. package/templates/verify//346/225/260/346/215/256/351/232/220/347/247/201.md +0 -46
  434. package/templates/verify//346/226/207/344/273/266/344/270/212/344/274/240.md +0 -45
  435. package/templates/verify//346/227/245/345/277/227.md +0 -45
  436. 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
  437. package/templates/verify//346/240/270/345/277/203/345/267/245/347/250/213/346/211/247/350/241/214.md +0 -65
  438. package/templates/verify//347/237/245/350/257/206/346/263/250/345/205/245.md +0 -38
  439. 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
  440. package/templates/verify//347/274/223/345/255/230/347/255/226/347/225/245.md +0 -45
  441. 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
  442. package/templates/verify//350/201/224/350/260/203/351/252/214/350/257/201.md +0 -87
  443. package/templates/verify//350/256/276/350/256/241/345/256/241/350/256/241.md +0 -184
  444. package/templates/verify//350/257/225/350/277/220/350/241/214/347/206/224/346/226/255.md +0 -74
  445. package/templates/verify//350/276/223/345/205/245/346/240/241/351/252/214.md +0 -44
  446. package/templates/verify//351/203/250/347/275/262/345/217/221/345/270/203.md +0 -101
  447. package/templates/verify//351/224/231/350/257/257/345/244/204/347/220/206.md +0 -46
  448. package/templates/verify//351/224/231/350/257/257/350/276/271/347/225/214.md +0 -38
  449. package/templates/verify//351/232/220/347/247/201/345/256/241/346/237/245.md +0 -37
  450. package/templates/verify//351/252/214/350/257/201.md +0 -38
  451. 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,135 +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
- - 安全风险
12
- - 架构隐患
13
- - minefield
14
- - antipattern
15
- extra:
16
- name: minefield-antipattern-list
17
- type: constraint
18
- scope:
19
- - '*'
20
- domain: build
21
- lifecycle_status: active
22
- version: 1.2.0
23
- last_reviewed: '2026-06-04'
24
- products:
25
- - '*'
26
- verification_layer: L2
27
- stage: build
28
- owner_mechanism: mc-existing-system-review
29
- ---
30
-
31
- # 雷区反模式清单
32
-
33
- ## MINE-DB-01: 无索引大表查询
34
- id: MINE-DB-01
35
- name: 无索引大表查询
36
- severity: error
37
- check_type: deterministic
38
- check_hint: 超过 10 万行的表缺少合理索引
39
- description: 大表(超过 10 万行)缺少合理索引会导致全表扫描,严重影响查询性能。须在改造时补充索引。
40
-
41
- ## MINE-DB-02: 循环查库
42
- id: MINE-DB-02
43
- name: 循环查库
44
- severity: error
45
- check_type: deterministic
46
- check_hint: 在循环体内执行数据库查询(N+1 问题)
47
- description: 在循环体内执行数据库查询是典型的 N+1 问题,会导致数据库压力剧增。应改为批量查询或 JOIN。
48
-
49
- ## MINE-DB-03: 全表扫描
50
- id: MINE-DB-03
51
- name: 全表扫描
52
- severity: warning
53
- check_type: deterministic
54
- check_hint: WHERE 条件未命中索引导致全表扫描
55
- description: WHERE 条件未命中索引或使用函数包裹索引列导致全表扫描。应优化查询条件或补充合适的索引。
56
-
57
- ## MINE-DB-04: 缺事务
58
- id: MINE-DB-04
59
- name: 缺事务
60
- severity: error
61
- check_type: deterministic
62
- check_hint: 多表写操作未使用事务保护
63
- description: 涉及多表写入的操作未使用事务保护,可能导致数据不一致。必须补充事务注解或编程式事务。
64
-
65
- ## MINE-CODE-01: 硬编码配置
66
- id: MINE-CODE-01
67
- name: 硬编码配置
68
- severity: error
69
- check_type: deterministic
70
- check_hint: 数据库连接、API 地址等硬编码在代码中
71
- description: 数据库连接字符串、API 地址、文件路径等配置项硬编码在源码中,应提取到配置文件或环境变量。
72
-
73
- ## MINE-CODE-02: 硬编码密钥
74
- id: MINE-CODE-02
75
- name: 硬编码密钥
76
- severity: error
77
- check_type: deterministic
78
- check_hint: 密码、Token、密钥等直接写在源码中
79
- description: 密码、Token、密钥、证书等敏感信息直接写在源码中是严重安全风险。必须使用密钥管理服务或加密配置。
80
-
81
- ## MINE-CODE-03: 大函数
82
- id: MINE-CODE-03
83
- name: 大函数
84
- severity: warning
85
- check_type: deterministic
86
- check_hint: 单个函数超过 80 行或单个类超过 1000 行
87
- description: 单个函数超过 80 行说明职责过多,应拆分为更小的函数。单个类超过 1000 行应考虑拆分为更小的类。
88
-
89
- ## MINE-CODE-04: 循环调接口
90
- id: MINE-CODE-04
91
- name: 循环调接口
92
- severity: error
93
- check_type: deterministic
94
- check_hint: 在循环体内调用 HTTP/RPC 接口
95
- description: 在循环体内调用 HTTP/RPC 接口会导致大量网络请求,严重影响性能。应改为批量接口调用或异步处理。
96
-
97
- ## MINE-CODE-05: 吞异常
98
- id: MINE-CODE-05
99
- name: 吞异常
100
- severity: error
101
- check_type: deterministic
102
- check_hint: catch 块为空或只打印日志不处理
103
- description: catch 块为空或仅打印日志不进行处理,会隐藏错误导致问题难以定位。必须至少记录日志并向上传播或标记为降级。
104
-
105
- ## MINE-ARCH-01: 循环依赖
106
- id: MINE-ARCH-01
107
- name: 循环依赖
108
- severity: error
109
- check_type: deterministic
110
- check_hint: 模块间存在循环引用
111
- description: 模块间存在 A→B→A 的循环依赖,导致无法独立部署和测试。应引入接口层或事件机制解耦。
112
-
113
- ## MINE-ARCH-02: 共享数据库
114
- id: MINE-ARCH-02
115
- name: 共享数据库
116
- severity: warning
117
- check_type: semantic
118
- check_hint: 多个服务直接操作同一个数据库表
119
- description: 多个服务直接操作同一个数据库表(非只读),会导致数据一致性问题。应通过 API 或事件机制协调。
120
-
121
- ## MINE-ARCH-03: 缺降级
122
- id: MINE-ARCH-03
123
- name: 缺降级
124
- severity: error
125
- check_type: semantic
126
- check_hint: 外部依赖无降级/兜底策略
127
- description: 关键外部依赖(支付、通知、数据同步)无降级/兜底策略,一旦外部服务不可用会导致核心功能中断。
128
-
129
- ## MINE-ARCH-04: 同步阻塞
130
- id: MINE-ARCH-04
131
- name: 同步阻塞
132
- severity: warning
133
- check_type: semantic
134
- check_hint: 高延迟操作使用同步调用
135
- description: 高延迟操作(文件处理、大数据量计算、跨系统同步)使用同步调用会阻塞线程,影响系统吞吐量。应考虑异步处理。
@@ -1,64 +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
- - verify
9
- - 验收标准
10
- - acceptance review
11
- extra:
12
- name: acceptance-criteria-review
13
- type: constraint
14
- scope:
15
- - backend
16
- - frontend
17
- products:
18
- - '*'
19
- lifecycle_status: active
20
- version: 1.3.0
21
- last_reviewed: '2026-06-04'
22
- domain: build
23
- verification_layer: L2
24
- stage: build
25
- owner_mechanism: mc-local-acceptance
26
- ---
27
-
28
- # 验收标准审查规则
29
-
30
- ## ACC-01: 验收场景覆盖三路径
31
-
32
- check_hint: 验收场景必须覆盖正常路径、边界条件和异常路径
33
- severity: error
34
- check_type: semantic
35
- evidence_required: ["测试计划中 P0 条目的覆盖策略分布"]
36
- scope: [backend, frontend]
37
- description: 验收测试至少包含:正常业务流程(happy path)、边界值输入(最大/最小/空值)、异常处理(错误输入、网络超时、权限不足)
38
-
39
- ## ACC-02: 验收证据含截图或日志
40
-
41
- check_hint: 每个验收场景必须有执行证据
42
- severity: error
43
- check_type: deterministic
44
- evidence_required: ["每个 P0 测试条目的 evidence 文件路径"]
45
- scope: [backend, frontend]
46
- description: 验收证据可以是:UI 截图、API 响应日志、测试输出报告;纯文字描述不构成有效证据
47
-
48
- ## ACC-03: 用户确认记录
49
-
50
- check_hint: 验收结果必须经用户确认
51
- severity: error
52
- check_type: deterministic
53
- evidence_required: ["sf_gate 返回的用户确认记录"]
54
- scope: [backend, frontend]
55
- description: sf_gate 返回的验收结果必须有用户确认的记录;AI 不得自行标记验收通过
56
-
57
- ## ACC-04: 回归验证
58
-
59
- check_hint: 验收必须包含回归验证
60
- severity: error
61
- check_type: deterministic
62
- evidence_required: ["回归测试执行结果"]
63
- scope: [backend, frontend]
64
- description: 变更代码的验收必须运行全量回归测试,确认变更未破坏已有功能
@@ -1,75 +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
- - acceptance test
12
- - 验收计划
13
- - 测试用例设计
14
- - 验证计划
15
- - 测试计划
16
- - 验证策略
17
- - verification plan
18
- - 测试规划
19
- - 集成测试计划
20
- extra:
21
- name: acceptance-test-planning
22
- type: procedure
23
- scope:
24
- - backend
25
- - frontend
26
- products:
27
- - '*'
28
- lifecycle_status: active
29
- version: 1.2.0
30
- last_reviewed: '2026-06-04'
31
- domain:
32
- - build
33
- - verify
34
- verification_layer: L2
35
- stage: build
36
- owner_mechanism: mc-delivery-gate
37
- ---
38
-
39
- ## 适用场景
40
- 基于任务卡片规划验收测试范围、优先级和覆盖策略,确保 P0/P1 功能有明确验收标准。
41
-
42
- ## 步骤
43
- 1. 确认任务卡片和交付蓝图已冻结
44
- 2. 识别所有功能点的测试覆盖需求
45
- 3. 创建测试条目,每条追溯到任务卡和需求基线
46
- 4. P0/P1 测试必须覆盖:正常路径 + 至少一个错误路径
47
- 5. L0 紧急修复可使用简化测试但不得完全跳过
48
- 6. 测试框架由技术栈决定
49
- 7. 明确验收标准和验收场景(基于需求文档和验收清单)
50
- 8. 准备测试数据(覆盖正常流、异常流、边界值、权限场景)
51
- 9. 执行验收测试并记录结果(通过/失败/阻塞),失败项关联缺陷
52
- 10. 回归测试:修复缺陷后重新验证相关场景
53
- 10a. repair_reverify 循环(失败项修复后):
54
- 1. 重新执行失败的测试场景
55
- 2. 重新执行受影响的回归测试范围
56
- 3. 最多重试 max_attempts 次(默认 3)
57
- 4. 超过 max_attempts 仍失败 → 上报用户决策(降级/延期/重构)
58
- 11. 输出验收报告(测试覆盖率、通过率、遗留风险),作为上线依据
59
-
60
- ## 检查点
61
- - [ ] 所有 P0 任务卡有至少 1 个测试条目
62
- - [ ] 所有 P1 任务卡有至少 1 个测试条目
63
- - [ ] 覆盖策略包含正常路径、边界场景、错误路径
64
- - [ ] 测试条目追溯到任务卡和需求基线
65
- - [ ] 验收场景覆盖所有需求点
66
- - [ ] 测试数据准备完毕
67
- - [ ] 验收报告输出并评审
68
-
69
- ## 注意事项
70
- - 测试必须在实现前生成(先失败后实现)
71
- - 每个测试至少 1 个断言
72
- - 纯文档/配置变更不适用本流程
73
- - 验收测试必须在类生产环境执行,禁止在开发环境验收
74
- - 验收发现的 P0/P1 问题必须在上线前修复
75
- - 性能验收必须模拟真实数据量和并发量
@@ -1,47 +0,0 @@
1
- ---
2
- id: ka-pattern-api-design
3
- kind: knowledge
4
- title: API设计
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: api-design
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
- - design
20
- verification_layer: L2
21
- stage: design
22
- owner_mechanism: mc-backend-pattern
23
- ---
24
-
25
- ## 决策规则
26
- - 业务输入参数超过 3 个必须封装为 Request 对象,禁止平铺离散 query/path/body 参数
27
- - 业务输出超过 1 个返回值必须封装为 Response 对象,禁止多个并列标量字段或 Map 作为正式契约
28
- - 列表查询必须定义:过滤条件、分页参数、排序规则、默认排序
29
- - 批量接口必须定义:每批上限、部分成功策略、失败详情返回格式
30
- - 删除操作必须明确声明:软删除/硬删除/级联删除/逻辑失效、可恢复性、前置校验、关联数据影响
31
- - 需要幂等或去重的接口必须显式定义幂等键或去重规则
32
- - 导出复用列表筛选条件时必须显式声明,列表和导出不得使用不同筛选语义
33
- - API 必须包含版本号路径前缀(如 /api/v1/),破坏性变更递增主版本号
34
- - 写接口必须有幂等设计(使用 Idempotency-Key 或业务唯一键),防止重复提交
35
- - API 必须实现限流保护(Rate Limiting),响应头包含剩余配额信息
36
- - 接口文档必须使用 OpenAPI/Swagger 自动生成,禁止手工维护独立文档
37
- - 批量操作接口必须限制单次数量(如 ≤ 100),防止超时和资源耗尽
38
-
39
- ## 验收项
40
- - [AC-01] 多参数接口使用 Request/Response 对象封装
41
- - [AC-02] 列表接口有分页和排序定义
42
- - [AC-03] 批量接口有上限和部分成功策略
43
- - [AC-04] 删除接口声明了删除语义和可恢复性
44
- - [AC-05] API 有版本号前缀
45
- - [AC-06] 写接口幂等设计
46
- - [AC-07] 有限流保护
47
- - [AC-08] 文档自动生成
@@ -1,48 +0,0 @@
1
- ---
2
- id: ka-pattern-n-plus-one-query
3
- kind: knowledge
4
- title: N加1查询
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: n-plus-one-query
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
- - design
20
- verification_layer: L2
21
- stage: design
22
- owner_mechanism: mc-backend-pattern
23
- ---
24
-
25
- ## 决策规则
26
- - 禁止在循环中执行数据库查询(N+1 反模式),必须改为批量查询或 JOIN
27
- - 列表页面展示关联数据必须使用 JOIN 或批量 IN 查询,禁止逐条查询关联实体
28
- - MyBatis 关联查询优先使用 `<collection>` 和 `<association>` 做批量映射,禁止 N+1 嵌套 select
29
- - 分页查询必须使用数据库 LIMIT,禁止内存分页(先查全量再 subList)
30
- - 列表查询字段禁止 SELECT *,只查展示所需字段
31
- - 慢查询(> 500ms)必须有索引支撑或查询计划分析
32
- - 批量 IN 查询参数数量建议不超过 500,超过时分批执行
33
- - 大数据量统计查询必须走汇总表或缓存,禁止实时 COUNT/SUM 全表扫描
34
- - 必须使用 JPA @EntityGraph 或 JOIN FETCH 显式指定关联查询策略
35
- - 批量查询替代循环查询必须使用 IN 子句(WHERE id IN (...)),单次 IN 数量 ≤ 500
36
- - MyBatis 必须使用 <collection> 或 <association> 做关联映射,禁止分段查询
37
- - 列表页面需要关联数据时,先查主表 ID 列表再批量查关联表(两步查询模式)
38
- - 必须在开发和测试环境开启 SQL 日志(hibernate.show_sql),便于发现 N+1 问题
39
-
40
- ## 验收项
41
- - [AC-01] 无循环内数据库查询
42
- - [AC-02] 列表关联数据使用 JOIN 或批量查询
43
- - [AC-03] 分页使用数据库 LIMIT
44
- - [AC-04] 查询字段非 SELECT *
45
- - [AC-05] 慢查询有索引支撑
46
- - [AC-06] 关联查询使用 JOIN FETCH / @EntityGraph
47
- - [AC-07] 批量查询使用 IN 子句
48
- - [AC-08] 开发环境开启 SQL 日志
@@ -1,72 +0,0 @@
1
- ---
2
- id: ka-procedure-OOD设计工作流
3
- kind: guidance
4
- title: OOD设计
5
- sync_policy: copy_to_project
6
- status: active
7
- triggers:
8
- - 面向对象设计
9
- - SOLID
10
- - 领域服务
11
- - 业务规则实现
12
- - 重构
13
- extra:
14
- name: ood-design-workflow
15
- type: procedure
16
- scope:
17
- - backend
18
- - frontend
19
- products:
20
- - '*'
21
- lifecycle_status: active
22
- version: 1.2.0
23
- last_reviewed: '2026-06-04'
24
- domain: design
25
- verification_layer: L2
26
- stage: design
27
- owner_mechanism: mc-ood-solid-contract
28
- ---
29
-
30
- ## 适用性判定(前置门控)
31
-
32
- | 判定条件 | 适用 | 不适用 |
33
- |---------|------|--------|
34
- | 复杂对象边界(多对象协作、继承/组合关系) | ✅ | |
35
- | 变化点(多策略/多实现/扩展点) | ✅ | |
36
- | 领域服务或业务规则封装 | ✅ | |
37
- | 简单 CRUD 或单表操作 | | ✅ |
38
- | 纯 UI/样式调整 | | ✅ |
39
-
40
- 不适用时:记录"不适用理由"一句话,跳过本工作流。
41
-
42
- ## 步骤
43
-
44
- ### Step 1: 列出对象职责与依赖
45
- - **属性**: LLM 推理
46
- - **输入**: 架构设计文档中的模块/实体定义
47
- - **输出**: 对象职责清单 + 依赖方向图 + 主要协作流程
48
-
49
- ### Step 2: SOLID 逐项分析
50
- - **属性**: LLM 推理
51
- - **输入**: Step 1 对象职责清单
52
- - **输出**: SOLID 风险与取舍分析
53
- - **Agent 行为**: 对 S/O/L/I/D 逐项分析,每项标注风险(高/中/低)+ 取舍说明
54
-
55
- ### Step 3: 修正硬失败
56
- - **属性**: LLM 推理 + 确定性校验混合
57
- - **输入**: Step 2 SOLID 分析
58
- - **输出**: 修正后设计 + 验证证据
59
- - **Agent 行为**: 高风险项必须修正;修正后重新分析对应项;最多 3 轮;低风险项可标注"已知取舍"
60
-
61
- ## 输出摘要
62
-
63
- | 对象/模块 | 单一职责 | 依赖接口 | 变化点 | SOLID 风险等级 | 修正状态 | 验证证据 |
64
- |---|---|---|---|---|---|---|
65
-
66
- ## 输出消费方式
67
- - 数据库设计(E-01 Step 2)和 API 设计(E-01 Step 3)引用本工作流的对象职责清单和 SOLID 分析
68
- - 编码后的 SOLID 审查由编码阶段代码审查流程负责,不在此工作流中
69
-
70
- ## 注意事项
71
- - 本工作流仅在详细设计阶段执行,不跨阶段
72
- - 输出摘要表必须填写完整,不得留空行
@@ -1,109 +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: consistency-check
13
- type: constraint
14
- scope:
15
- - '*'
16
- products:
17
- - '*'
18
- lifecycle_status: active
19
- domain: design
20
- version: 1.3.0
21
- last_reviewed: '2026-06-04'
22
- verification_layer: L2
23
- stage: design
24
- owner_mechanism: mc-generic-review
25
- ---
26
-
27
- # 设计产物一致性校验规则
28
-
29
- ## 详细设计阶段校验(本阶段执行)
30
-
31
- ### CON-DD-01: 实体覆盖完整性
32
- check_hint: 数据库设计中每张表必须对应架构设计中的实体,且无遗漏实体
33
- severity: error
34
- description: 架构文档所有 ARCH-* 实体必须在数据库设计中有对应表。遗漏实体必须补充或标注"本次迭代不涉及"。
35
- check_focus: 覆盖完整性——提取架构文档所有 ARCH-* 实体,逐一在 DD-T* 中查找
36
-
37
- ### CON-DD-02: API 模块覆盖完整性
38
- check_hint: API 接口规格中每个模块的所有 CRUD 操作必须完整定义
39
- severity: error
40
- description: 架构文档所有 ARCH-* 模块必须在 API 规格中有对应接口。遗漏操作必须补充或标注"本次迭代不涉及"。
41
-
42
- ### CON-DD-03: DB-API 字段映射
43
- check_hint: API 接口规格中每个字段必须在数据库设计中有对应字段
44
- severity: error
45
- description: API 请求/响应字段必须精确追溯到数据库表.字段。例外:计算字段/缓存字段/外部服务字段需标注来源。
46
-
47
- ### CON-DD-04: 约束一致性
48
- check_hint: API 字段约束必须与数据库字段约束一致
49
- severity: warning
50
- description: API 层约束不得弱于数据库层。允许 API 层更严格。不一致处须在设计文档中明确标注。
51
-
52
- ## 任务规划阶段校验(本文件定义规范,任务规划阶段执行)
53
-
54
- ### CON-TP-01: 任务-接口关联
55
- check_hint: 每个任务必须关联到详细设计中的 DD-* 编号
56
- severity: error
57
-
58
- ### CON-TP-02: 文件路径一致性
59
- check_hint: 任务涉及的文件路径必须在详细设计文档中有对应模块描述
60
- severity: error
61
-
62
- ### CON-TP-03: 接口调用一致性
63
- check_hint: 任务中的接口调用必须与 API 接口规格文档完全一致
64
- severity: error
65
-
66
- ### CON-TP-04: 数据操作覆盖
67
- check_hint: 数据库设计中每张表必须在切片任务中有对应操作覆盖
68
- severity: warning
69
-
70
- ## 跨阶段验证(任务规划门禁触发)
71
-
72
- ### CON-CROSS-01: 切片-设计路径一致
73
- check_hint: 切片计划的涉及文件与详细设计描述的模块路径必须一致
74
- severity: error
75
-
76
- ## 编码阶段校验(编码与单元测试阶段执行)
77
-
78
- ### CON-TS-01: 切片任务关联设计接口
79
- check_hint: 每个切片任务必须关联到 API 接口规格中定义的接口端点
80
- severity: error
81
- check_type: deterministic
82
- description: 切片计划中每个 SLC 的上游引用必须包含 API 接口规格中的接口编号。未关联接口的切片不得进入编码。
83
-
84
- ### CON-TS-02: 切片覆盖设计全部模块
85
- check_hint: 所有设计文档中定义的模块必须被切片任务覆盖
86
- severity: error
87
- check_type: semantic
88
- description: 详细设计中定义的所有模块(DD-*)必须在切片计划中有对应的 SLC 覆盖。遗漏模块须补充切片或标注"本次迭代不涉及"。
89
-
90
- ### CON-TS-03: 接口规格与切片一致
91
- check_hint: 切片涉及的接口签名必须与 API 接口规格完全一致
92
- severity: error
93
- check_type: deterministic
94
- description: 编码时实现的接口签名(HTTP 方法、路径、参数、响应)必须与 API 接口规格文档精确匹配。偏差须更新设计文档并重新评审。
95
-
96
- ### CON-TS-04: 数据库操作覆盖
97
- check_hint: 切片涉及的数据库操作必须在数据库设计文档中有定义
98
- severity: error
99
- check_type: deterministic
100
- description: 切片中涉及的表操作(INSERT/UPDATE/DELETE/SELECT)必须在数据库设计文档中有对应的表定义和约束。未定义的操作须补充设计。
101
-
102
- ## 校验时机
103
- 1. 详细设计完成后、任务规划前:执行 CON-DD-01~04
104
- 2. 任务规划完成后、编码前:执行 CON-TP-01~04 + CON-CROSS-01
105
- 3. 编码阶段:执行 CON-TS-01~04
106
-
107
- ## COMP-* 本阶段执行范围(兼容性检查规则在架构阶段定义)
108
- **详细设计阶段执行**:COMP-01(字段删除过渡期)、COMP-03(新增必填字段默认值)、COMP-04(枚举值向后兼容)、COMP-05(外键数据完整性)、COMP-07(API 调用方不受影响)
109
- **后续阶段执行**:COMP-02(API 版本化→编码阶段)、COMP-06(行为不变量→编码阶段)、COMP-08(配置迁移→部署阶段)、COMP-09(定时任务→部署阶段)、COMP-10(数据迁移语义→联调阶段)、COMP-11(跨阶段一致性→持续)
@@ -1,105 +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
- - brainstorm
10
- - 不确定
11
- - 你看着办
12
- - 都行
13
- extra:
14
- name: brainstorm-when-uncertain
15
- type: procedure
16
- scope:
17
- - '*'
18
- domain:
19
- - build
20
- - design
21
- lifecycle_status: active
22
- version: 1.0.0
23
- last_reviewed: '2026-06-04'
24
- verification_layer: L2
25
- stage: design
26
- owner_mechanism: mc-generic-review
27
- ---
28
-
29
- # 不确定时头脑风暴流程
30
-
31
- ## 适用场景
32
-
33
- 当用户表达不确定、需求不明确、技术选型开放、或 AI 自检不确定时,触发本流程辅助决策。本流程为全局流程,不属于特定能力域。
34
-
35
- ## 不确定类型分类
36
-
37
- | 类型 | 触发关键词/信号 | 典型场景 |
38
- |------|---------------|---------|
39
- | 用户不确定 | "你看着办"/"都行"/"不确定"/"都可以" | 用户对方案选择无偏好 |
40
- | 需求不明确 | 需求描述矛盾/遗漏/模糊 | 需求文档存在冲突 |
41
- | 技术选型开放 | 多种技术方案均可/无明确约束 | 架构设计(design 域)技术选型 |
42
- | AI 自检不确定 | 置信度低/多种解释均合理 | AI 无法确定用户真实意图 |
43
-
44
- ## 流程步骤
45
-
46
- ### 步骤 1:识别不确定类型
47
- 区分四类不确定,确定进入头脑风暴的原因。
48
-
49
- ### 步骤 2:列举候选方案(≥ 3 个)
50
- 每个候选方案须包含:
51
- - 描述:方案概述
52
- - 优势:该方案的优点
53
- - 劣势:该方案的缺点
54
- - 适用场景:最适合的情况
55
-
56
- **检查点**:方案间有本质区别(非假多样性)。若 3 个方案本质相同(仅措辞不同),须重新思考。
57
-
58
- **若 fundamental_need 为空 → 必须先触发 FP-01**(第一性原理推理规则),补充根本目标后再继续。
59
-
60
- ### 步骤 3:标注 AI 偏好
61
- 对每个方案标注 AI 偏好:推荐/可选/不推荐 + 理由。AI 偏好基于:
62
- - 与 fundamental_need 的契合度
63
- - 技术复杂度和风险
64
- - 项目约束条件
65
- - 维护成本
66
-
67
- ### 步骤 4:呈现给用户
68
- 以对比表格呈现,突出关键差异维度。表格至少包含:方案/优势/劣势/AI偏好/推荐理由。
69
-
70
- ### 步骤 5:用户选择
71
- 用户明确选择一个方案。用户回复须为明确的方案选择(非"都可以"/"你定")。
72
-
73
- **未通过** → 进入用户模糊降级策略。
74
-
75
- ### 步骤 6:记录决策
76
- 将用户选择写入对应阶段产物:
77
- - 需求分析 → 更新需求分析文档
78
- - 架构设计 → 更新架构决策记录
79
- - 详细设计 → 更新设计文档
80
- - 编码阶段 → 更新技术决策注释
81
-
82
- ## 用户模糊降级策略
83
-
84
- 当用户回复仍为模糊/不确定时,按 3 级降级处理:
85
-
86
- | 级别 | 降级策略 | 条件 |
87
- |------|---------|------|
88
- | 1 级 | 重新引导 | 用户首次模糊 → 重新解释差异,追问偏好维度 |
89
- | 2 级 | 标注偏好 + 可推翻 | 用户二次模糊 → AI 标注推荐方案,告知用户可推翻 |
90
- | 3 级 | 直接采纳 | 用户三次模糊 → AI 采纳推荐方案,记录"用户未明确选择" |
91
-
92
- ## 互触发关系
93
-
94
- | 触发条件 | 触发动作 |
95
- |---------|---------|
96
- | 头脑风暴步骤 2 中 fundamental_need 为空 | → 触发 FP-01(第一性原理推理规则) |
97
- | FP-03 检测到表面修复(同类问题 ≥ 3 次) | → 建议触发第一性原理推理 |
98
- | FP-01 和头脑风暴同时需要时 | → FP-01 优先(先确定根本目标,再做方案选择) |
99
-
100
- ## 禁止行为
101
-
102
- 1. **禁止直接选唯一方案**:不得在未列举 ≥ 3 个方案的情况下直接推荐唯一方案
103
- 2. **禁止用"建议"替代对比**:不得仅说"建议方案 A"而不提供方案对比
104
- 3. **禁止跳过枚举**:不得跳过候选方案列举步骤直接进入用户选择
105
- 4. **禁止 3 方案本质相同**:候选方案间须有本质区别,不得通过假多样性绕过