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,46 +0,0 @@
1
- ---
2
- id: ka-checklist-会话恢复
3
- kind: artifact
4
- title: 会话恢复
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: session-recovery
9
- type: artifact
10
- scope:
11
- - '*'
12
- products:
13
- - '*'
14
- lifecycle_status: active
15
- version: 1.1.0
16
- last_reviewed: '2026-06-01'
17
- domain: verify
18
- verification_layer: L2
19
- stage: verify
20
- owner_mechanism: mc-task-context-lifecycle
21
- ---
22
-
23
- ## 适用场景
24
-
25
- 每次新会话启动时,AI 必须首先执行上下文对齐,防止在失忆状态下产生无效交付。
26
-
27
- ## 步骤
28
-
29
- 1. 调用 sf_task action=query 扫描 .soloforge/state/ 目录获取任务状态
30
- 2. 若 resumed=true:播报中断工单的 task_id、阶段、已完成的产出,询问人类是否继续
31
- 3. 若 resumed=false:工作区干净,正常进入分类流程
32
- 4. 恢复时读取 docs/ 下的前序产出文件
33
- 5. 基于 state/current-task.json 中的 snapshot 字段恢复上下文
34
-
35
- ## 检查点
36
-
37
- - [ ] 已通过 sf_task action=query 获取 resumed 状态
38
- - [ ] resumed=true 时已向人类展示中断进度
39
- - [ ] 恢复后的任务阶段与 state 记录一致
40
- - [ ] 前序产出文件存在且可读
41
-
42
- ## 注意事项
43
-
44
- - AI 禁止在未执行上下文对齐的情况下直接开始新任务
45
- - 状态文件格式为 JSON,包含 task_id、phase、snapshot、created_at 字段
46
- - 若 state 文件损坏,标记为 dirty 并向人类报告,不自动忽略
@@ -1,71 +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
- - design
9
- - 架构决策
10
- - decision review
11
- extra:
12
- name: decision-completeness-review
13
- type: constraint
14
- scope:
15
- - backend
16
- - frontend
17
- products:
18
- - '*'
19
- lifecycle_status: active
20
- version: 1.2.0
21
- last_reviewed: '2026-06-04'
22
- domain: verify
23
- verification_layer: L2
24
- stage: verify
25
- owner_mechanism: mc-architecture-decision-workshop
26
- ---
27
-
28
- # 决策完整性审查规则
29
-
30
- ## DEC-01: 六域决策覆盖完整性
31
-
32
- check_hint: 业务流程、数据、安全、后端、前端、基础设施六域必须有决策记录
33
- severity: warning
34
- check_type: semantic
35
- scope: [backend, frontend]
36
- description: 每个域至少有一个明确的决策点;与当前需求无关的域可以标注"不适用"但不得留空
37
- evidence_required:
38
- - "六域决策覆盖列表"
39
- - "每域决策记录路径或不适标注"
40
-
41
- ## DEC-02: 每个决策有量化依据
42
-
43
- check_hint: 决策记录必须包含选型理由、对比方案和量化指标
44
- severity: warning
45
- check_type: semantic
46
- scope: [backend, frontend]
47
- description: 决策不得仅写"选择 X",必须包含:为什么选 X、对比了哪些方案、用什么指标衡量的
48
- evidence_required:
49
- - "决策记录路径"
50
- - "选型理由+对比方案+量化指标确认"
51
-
52
- ## DEC-03: 用户确认证据存在
53
-
54
- check_hint: 每个关键决策必须有用户确认记录
55
- severity: warning
56
- check_type: semantic
57
- scope: [backend, frontend]
58
- description: 涉及架构、技术栈、数据结构、API 设计的关键决策,必须有用户确认的证据(确认文本或审批记录)
59
- evidence_required:
60
- - "用户确认记录路径"
61
- - "确认时间+确认内容"
62
-
63
- ## DEC-04: 决策可追溯
64
-
65
- check_hint: 每个决策必须关联到具体的需求点
66
- severity: warning
67
- check_type: semantic
68
- scope: [backend, frontend]
69
- description: 决策不能凭空产生,必须能追溯到触发它的需求或问题;无需求对应的决策标注为"技术优化"
70
- evidence_required:
71
- - "决策-需求追溯映射表"
@@ -1,41 +0,0 @@
1
- ---
2
- id: ka-pattern-api-pagination
3
- kind: knowledge
4
- title: 分页查询
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: api-pagination
9
- scope:
10
- - backend
11
- products:
12
- - '*'
13
- lifecycle_status: active
14
- version: 1.1.0
15
- last_reviewed: '2026-06-01'
16
- type: knowledge
17
- domain: verify
18
- verification_layer: L2
19
- stage: verify
20
- owner_mechanism: mc-backend-pattern
21
- ---
22
-
23
- ## 决策规则
24
- - 必须使用数据库分页查询(LIMIT/OFFSET),禁止内存 subList 分页
25
- - 必须限制最大 pageSize(不超过 100)
26
- - 排序字段必须使用白名单校验,禁止直接拼接用户输入
27
- - 深分页(page > 1000)必须使用游标分页替代 OFFSET
28
- - 分页响应必须包含 total、page、size、totalPages 字段
29
- - 深分页(offset > 10000)必须使用游标分页或子查询优化,禁止直接 OFFSET
30
- - 分页查询禁止使用 SELECT *,必须指定所需字段
31
- - 排序字段必须是索引列,禁止对非索引列排序导致全表扫描
32
- - 前端分页控件必须显示总条数和页码跳转
33
-
34
- ## 验收项
35
- - [AC-01] page >= 1 且 1 <= size <= 100
36
- - [AC-02] 使用数据库分页而非内存分页
37
- - [AC-03] 响应含 total/page/size/totalPages
38
- - [AC-04] 排序字段白名单校验
39
- - [AC-05] 深分页有优化策略
40
- - [AC-06] 排序字段使用索引列
41
- - [AC-07] 前端有页码跳转
@@ -1,40 +0,0 @@
1
- ---
2
- id: ka-artifact_template-frontend-page
3
- kind: artifact
4
- title: 前端页面
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: frontend-page
9
- scope:
10
- - frontend
11
- products:
12
- - '*'
13
- lifecycle_status: active
14
- version: 1.1.0
15
- last_reviewed: '2026-06-01'
16
- type: artifact
17
- domain: verify
18
- stage: verify
19
- owner_mechanism: mc-artifact-contract
20
- ---
21
-
22
- ## 验收项
23
- - [AC-01] 组件有明确的 Props 类型定义,无 any 类型 (check: grep -c 'any\b' {file})
24
- - [AC-02] API 调用封装在 service 层,不直接在组件中 fetch (check: grep -c 'fetch\|axios\.\|httpClient\.' {file})
25
- - [AC-03] 表单有校验规则(必填/长度/格式) (check: grep -c 'required\|validator\|rules' {file})
26
- - [AC-04] 列表页面有 loading 状态和空数据提示 (check: grep -c 'loading\|empty\|暂无数据\|skeleton' {file})
27
- - [AC-05] 错误状态有用户友好提示,不直接展示技术错误信息 (check: grep -c 'message\.error\|notification\|Toast\|错误提示' {file})
28
- - [AC-06] 分页列表使用服务端分页,无全量加载 (check: grep -c 'pagination\|pageSize\|current\|pageNum' {file})
29
- - [AC-07] 无硬编码的 URL 或魔法字符串,API 路径使用常量管理 (check: grep -c "'/api/" {file})
30
- - [AC-08] useEffect 依赖数组完整,无遗漏依赖警告 (check: grep -A1 'useEffect' {file} | grep -c '\[\]')
31
- - [AC-09] 事件处理函数有类型注解 (check: grep -c 'React.MouseEvent\|React.ChangeEvent\|event:' {file})
32
- - [AC-10] 生产代码无 console.log 调试输出 (check: grep -c 'console\.log' {file})
33
- - [AC-11] 页面是否处理 loading/empty/error 三态 (check: grep -c 'loading\|empty\|error\|Spin\|Empty\|ErrorBoundary' {file})
34
- - [AC-12] 接口调用是否有错误提示(toast/notification) (check: grep -c 'message\.error\|notification\.error\|Toast\|showError' {file})
35
- - [AC-13] 表单是否有输入校验和错误提示 (check: grep -c 'form\.validate\|getFieldError\|validateFields\|help\|validateStatus' {file})
36
- - [AC-14] 危险操作(删除/清空)是否有二次确认弹窗 (check: grep -c 'confirm\|Modal\.confirm\|popconfirm\|二次确认' {file})
37
- - [AC-15] 列表页是否有分页(非一次性全量加载) (check: grep -c 'Pagination\|pagination\|onChange.*page\|onPageChange' {file})
38
- - [AC-16] 是否支持响应式布局(移动端适配) (check: grep -c 'media\|responsive\|@media\|flex-wrap\|grid' {file})
39
- - [AC-17] 图片是否有懒加载(大量图片场景) (check: grep -c 'lazy\|LazyLoad\|loading="lazy"\|IntersectionObserver' {file})
40
- - [AC-18] 是否有无障碍支持(键盘导航、颜色对比度) (check: grep -c 'aria-\|role=\|tabIndex\|alt=\|htmlFor' {file})
@@ -1,55 +0,0 @@
1
- ---
2
- id: 历史数据清洗脚本
3
- kind: artifact
4
- title: 历史数据清洗脚本
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: historical-data-cleanup-script
9
- type: artifact
10
- scope:
11
- - '*'
12
- domain: verify
13
- lifecycle_status: active
14
- stage: verify
15
- owner_mechanism: mc-existing-system-artifact
16
- ---
17
-
18
- # 历史数据清洗脚本
19
-
20
- ## 1. 清洗目的
21
- <!-- 为什么要做数据清洗 -->
22
-
23
- ## 2. 清洗范围
24
- - 目标表:<!-- 表名 -->
25
- - 数据条件:<!-- 清洗条件 -->
26
-
27
- ## 3. 清洗逻辑
28
-
29
- ```sql
30
- -- 清洗脚本
31
- -- 注意:执行前备份目标表
32
-
33
- -- 备份
34
- CREATE TABLE <!-- 表名 -->_backup_YYYYMMDD AS SELECT * FROM <!-- 表名 -->;
35
-
36
- -- 清洗
37
- <!-- 清洗SQL -->
38
-
39
- -- 验证
40
- SELECT COUNT(*) FROM <!-- 表名 --> WHERE <!-- 条件 -->;
41
-
42
- -- 验证通过标准
43
- -- 预期影响行数:<!-- N 行 -->
44
- -- 允许偏差:± <!-- X% -->
45
- -- 执行超时:<!-- 如 30 分钟 -->
46
-
47
- ```
48
-
49
- ## 4. 回滚方案
50
- ```sql
51
- -- 回滚
52
- INSERT INTO <!-- 表名 --> SELECT * FROM <!-- 表名 -->_backup_YYYYMMDD;
53
-
54
- -- 回滚前确认:备份表行数 = 清洗前原表行数
55
- ```
@@ -1,73 +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
- - 发布后
9
- - 上线观察
10
- - post-release review
11
- extra:
12
- name: post-release-review
13
- type: constraint
14
- scope:
15
- - backend
16
- - frontend
17
- products:
18
- - '*'
19
- lifecycle_status: active
20
- version: 1.2.0
21
- last_reviewed: '2026-06-04'
22
- domain: verify
23
- verification_layer: L2
24
- stage: verify
25
- owner_mechanism: mc-delivery-gate
26
- ---
27
-
28
- # 发布后审查规则
29
-
30
- ## REL-01: 监控指标在阈值内
31
-
32
- check_hint: 发布后关键监控指标必须在正常范围内
33
- severity: error
34
- check_type: deterministic
35
- scope: [backend, frontend]
36
- description: 错误率、响应时间、吞吐量等关键指标在发布后 30 分钟内必须在历史基线 ±20% 范围内。监控指标必须通过,不得为建议项。
37
- evidence_required:
38
- - "监控指标报告路径"
39
- - "错误率/响应时间/吞吐量数值"
40
- - "与基线对比结果(须在 ±20% 范围内)"
41
-
42
- ## REL-02: 无新增告警
43
-
44
- check_hint: 发布后不得产生新的异常告警
45
- severity: warning
46
- check_type: deterministic
47
- scope: [backend, frontend]
48
- description: 发布后检查告警系统,不得有因本次发布新增的错误日志或异常告警
49
- evidence_required:
50
- - "告警系统检查结果"
51
- - "新增告警列表(须为空)"
52
-
53
- ## REL-03: 回滚预案已验证
54
-
55
- check_hint: 回滚操作必须在发布前验证过
56
- severity: warning
57
- check_type: deterministic
58
- scope: [backend, frontend]
59
- description: 回滚预案必须经过实际演练或自动化验证,确认回滚操作可在 5 分钟内完成
60
- evidence_required:
61
- - "回滚预案文档路径"
62
- - "演练/验证记录"
63
-
64
- ## REL-04: 数据一致性确认
65
-
66
- check_hint: 发布后必须验证数据一致性
67
- severity: warning
68
- check_type: deterministic
69
- scope: backend
70
- description: 涉及数据库变更的发布,发布后必须验证新老数据的一致性(数据校验脚本通过)
71
- evidence_required:
72
- - "数据一致性校验脚本路径"
73
- - "校验结果(须通过)"
@@ -1,39 +0,0 @@
1
- ---
2
- id: ka-artifact_template-backend-api
3
- kind: artifact
4
- title: 后端API
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: backend-api
9
- scope:
10
- - backend
11
- products:
12
- - '*'
13
- lifecycle_status: active
14
- version: 1.1.0
15
- last_reviewed: '2026-06-01'
16
- type: artifact
17
- domain: verify
18
- stage: verify
19
- owner_mechanism: mc-backend-implementation-contract
20
- ---
21
-
22
- ## 验收项
23
- - [AC-01] Controller 层无业务逻辑(无 if/else 分支、计算、状态机) (check: grep -rn 'if\s*(.*>.*)\|if\s*(.*< .*)' {file} --include='*Controller.java')
24
- - [AC-02] DTO 与 Entity 分离,请求/响应使用 DTO,不直接暴露 Entity (check: grep -c 'Entity\|@Table' {file} && grep -c 'class.*DTO\|class.*Request\|class.*Response' {file})
25
- - [AC-03] 写操作 Service 方法有 @Transactional 注解 (check: grep -B2 'public.*save\|public.*update\|public.*delete\|public.*create' {file} | grep -c '@Transactional')
26
- - [AC-04] 批量操作使用 batch SQL,无循环内逐条调用 (check: grep -A5 'for\s*(' {file} | grep -c 'mapper\.\|repository\.\|dao\.')
27
- - [AC-05] 删除操作记录操作人和原因 (check: grep -A5 'delete\|remove' {file} | grep -c 'operator\|reason\|操作人')
28
- - [AC-06] 所有异常经全局异常处理器返回,无散落 try-catch 吞异常 (check: grep -c 'catch\s*(.*Exception\s*\w*)\s*\{\s*\}' {file})
29
- - [AC-07] 接口有 @Valid 或手动参数校验,不信任外部输入 (check: grep -c '@Valid\|@NotNull\|@NotBlank\|@Size\|validate' {file})
30
- - [AC-08] 关键写操作有 INFO 级别审计日志(操作者/时间/对象) (check: grep -c 'log\.info\|auditLog\|操作日志' {file})
31
- - [AC-09] 日志中无敏感信息(密码/token/身份证号) (check: grep -ic 'password\|token\|secret\|idcard\|身份证' {file})
32
- - [AC-10] 权限检查注解到位(@PreAuthorize 或自定义鉴权) (check: grep -c '@PreAuthorize\|@RequiresPermissions\|checkPermission' {file})
33
- - [AC-11] API 是否有版本号路径前缀(/api/v1/) (check: grep -c '@RequestMapping.*"/api/v[0-9]' {file})
34
- - [AC-12] 写接口是否有幂等设计(幂等键或唯一约束) (check: grep -c 'Idempotent\|幂等\|idempotent' {file})
35
- - [AC-13] 分页接口是否返回标准分页结构(total、list、pageNum、pageSize) (check: grep -c 'PageResult\|PageInfo\|PageResponse\|total.*list' {file})
36
- - [AC-14] 是否有全局统一错误码体系 (check: grep -c 'ErrorCode\|BizCode\|ResultCode\|错误码' {file})
37
- - [AC-15] 接口文档是否与实现同步(Swagger/OpenAPI 注解完整) (check: grep -c '@ApiOperation\|@Schema\|summary' {file})
38
- - [AC-16] 是否有速率限制保护 (check: grep -c '@RateLimit\|RateLimiter\|限流\|rate' {file})
39
- - [AC-17] 批量操作是否有数量上限(≤ 500 条) (check: grep -c '@Size.*max\|MAX_BATCH\|batchSize\|批量上限' {file})
@@ -1,45 +0,0 @@
1
- ---
2
- id: ka-pattern-crud-operation
3
- kind: knowledge
4
- title: 增删改查
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: crud-operation
9
- scope:
10
- - backend
11
- products:
12
- - '*'
13
- lifecycle_status: active
14
- version: 1.1.0
15
- last_reviewed: '2026-06-01'
16
- type: knowledge
17
- domain: verify
18
- verification_layer: L2
19
- stage: verify
20
- owner_mechanism: mc-backend-pattern
21
- ---
22
-
23
- ## 决策规则
24
- - 必须遵循 Controller → Service → Mapper/Repository 三层分离
25
- - 禁止 Controller 包含业务逻辑(if/else 分支、计算、状态机)
26
- - 禁止 DTO 和 Entity 混用,外部请求不可直接操作数据库字段
27
- - 批量操作禁止在循环中逐条调用数据库
28
- - 写操作 Service 方法必须有 @Transactional 注解
29
- - 删除操作必须记录操作人和原因
30
- - 列表查询接口必须返回分页结构(total、list、pageNum、pageSize),禁止返回全量数据
31
- - 创建/更新接口必须返回完整实体或 ID,禁止返回 void
32
- - 逻辑删除必须使用统一字段(如 is_deleted),禁止物理删除业务数据
33
- - 并发更新场景必须使用乐观锁(version 字段或更新时间条件),防止数据覆盖
34
- - 批量更新/删除操作必须有数量上限(如 ≤ 500 条),防止大批量锁表
35
-
36
- ## 验收项
37
- - [AC-01] Controller 无业务逻辑
38
- - [AC-02] DTO/Entity 分离
39
- - [AC-03] 写操作有事务注解
40
- - [AC-04] 批量操作使用 batch SQL
41
- - [AC-05] 删除有审计记录
42
- - [AC-06] 列表查询返回分页结构
43
- - [AC-07] 创建/更新返回完整数据
44
- - [AC-08] 逻辑删除而非物理删除
45
- - [AC-09] 并发更新有乐观锁保护
@@ -1,43 +0,0 @@
1
- ---
2
- id: ka-pattern-external-dependency
3
- kind: knowledge
4
- title: 外部依赖
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: external-dependency
9
- scope:
10
- - backend
11
- products:
12
- - '*'
13
- lifecycle_status: active
14
- version: 1.1.0
15
- last_reviewed: '2026-06-01'
16
- type: knowledge
17
- domain: verify
18
- verification_layer: L2
19
- stage: verify
20
- owner_mechanism: mc-backend-pattern
21
- ---
22
-
23
- ## 决策规则
24
- - 每个外部依赖调用必须定义超时时间,禁止无限等待
25
- - 需要重试时必须同时定义幂等或去重策略,避免重复副作用
26
- - 需要降级时必须定义:降级行为、用户提示、恢复条件
27
- - 新增配置项必须文档化:默认值、环境差异、灰度方式、回滚策略
28
- - 外部调用失败必须有区别于业务异常的错误码和用户提示
29
- - 外部依赖必须设置合理的超时时间(连接超时 + 读超时),禁止无限等待
30
- - 外部依赖调用必须有熔断保护,连续失败 N 次自动熔断
31
- - 外部依赖必须有降级策略(返回缓存数据/默认值),不能因为依赖故障拖垮主流程
32
- - 第三方库版本必须锁定(package-lock.json / Gradle version),禁止使用 latest 或范围版本
33
- - 外部依赖的健康检查必须纳入监控,响应时间/成功率异常时触发告警
34
-
35
- ## 验收项
36
- - [AC-01] 外部调用有超时配置
37
- - [AC-02] 重试操作有幂等/去重策略
38
- - [AC-03] 降级场景有用户提示和恢复条件
39
- - [AC-04] 外部调用失败有独立错误码
40
- - [AC-05] 外部调用有超时配置
41
- - [AC-06] 有熔断和降级策略
42
- - [AC-07] 依赖版本锁定
43
- - [AC-08] 依赖健康检查有监控
@@ -1,42 +0,0 @@
1
- ---
2
- id: ka-pattern-contract-compatibility
3
- kind: knowledge
4
- title: 契约兼容
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: contract-compatibility
9
- scope:
10
- - backend
11
- products:
12
- - '*'
13
- lifecycle_status: active
14
- version: 1.1.0
15
- last_reviewed: '2026-06-01'
16
- type: knowledge
17
- domain: verify
18
- verification_layer: L2
19
- stage: verify
20
- owner_mechanism: mc-backend-pattern
21
- ---
22
-
23
- ## 决策规则
24
- - API 契约是前后端对齐的唯一信源,每次变更必须有 diff 记录和版本说明
25
- - 变更必须前向兼容,破坏性变更必须标记 deprecated 并提供至少一个完整版本的过渡期
26
- - 新增必填请求字段、删除字段、改变字段类型、修改路径、改变错误码含义均为破坏性变更,需要废弃流程
27
- - 每次契约变更必须同步更新接口文档和 schema 定义
28
- - 禁止前后端口头约定替代正式契约变更
29
- - 新增可选字段必须设默认值,保证旧客户端兼容
30
- - 枚举类型新增值必须评估对所有消费方的影响
31
- - 删除字段必须分阶段:先标记 @Deprecated → 确认无消费方 → 下版本移除
32
- - 数据库字段变更必须兼容旧代码(先加新字段 → 迁移数据 → 再删旧字段)
33
- - API 路径变更必须保留旧路径并重定向,给予消费方充足迁移时间
34
-
35
- ## 验收项
36
- - [AC-01] 接口变更有 diff 记录
37
- - [AC-02] 破坏性变更有 deprecated 过渡期
38
- - [AC-03] 文档与 schema 同步更新
39
- - [AC-04] 无口头约定的非正式变更
40
- - [AC-05] 新字段有默认值
41
- - [AC-06] 删除字段分阶段进行
42
- - [AC-07] 数据库变更兼容旧代码
@@ -1,39 +0,0 @@
1
- ---
2
- id: ka-pattern-scheduled-task
3
- kind: knowledge
4
- title: 定时任务
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: scheduled-task
9
- scope:
10
- - backend
11
- products:
12
- - '*'
13
- lifecycle_status: active
14
- version: 1.1.0
15
- last_reviewed: '2026-06-01'
16
- type: knowledge
17
- domain: verify
18
- verification_layer: L2
19
- stage: verify
20
- owner_mechanism: mc-backend-pattern
21
- ---
22
-
23
- ## 决策规则
24
- - 多实例部署的定时任务必须使用分布式锁,禁止裸 @Scheduled
25
- - 每次执行必须记录状态(开始/结束时间、结果、错误信息)
26
- - 执行失败必须有告警通知(钉钉/邮件/Slack)
27
- - 任务执行时间不得超过调度间隔的一半,防止堆积
28
- - 失败任务必须有重试机制(建议最多 3 次)
29
- - 定时任务必须配置超时时间,防止任务卡死影响后续调度
30
- - 定时任务禁止使用固定间隔执行长事务,必须拆分为小批次处理
31
- - 定时任务必须有手动触发入口(管理后台或 API),便于紧急修复数据
32
-
33
- ## 验收项
34
- - [AC-01] 分布式锁防重复执行
35
- - [AC-02] 每次执行记录状态
36
- - [AC-03] 失败有告警通知
37
- - [AC-04] 执行时间不超调度间隔一半
38
- - [AC-05] 任务有超时配置
39
- - [AC-06] 有手动触发入口
@@ -1,48 +0,0 @@
1
- ---
2
- id: ka-pattern-websocket-realtime
3
- kind: knowledge
4
- title: 实时推送
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: websocket-realtime
9
- scope:
10
- - backend
11
- - frontend
12
- products:
13
- - '*'
14
- lifecycle_status: active
15
- version: 1.1.0
16
- last_reviewed: '2026-06-01'
17
- type: knowledge
18
- domain: verify
19
- verification_layer: L2
20
- stage: verify
21
- owner_mechanism: mc-general-pattern
22
- ---
23
-
24
- ## 决策规则
25
- - WebSocket 连接必须有心跳机制(建议 30s),检测断线并自动重连
26
- - 重连必须使用指数退避策略(1s/2s/4s/8s/max 30s),禁止无限重试
27
- - 消息必须有序号或时间戳,消费端处理乱序和去重
28
- - 连接异常断开时,未确认消息必须有补偿机制(重新拉取 / 离线消息队列)
29
- - 后端推送频率必须有熔断保护,防止消息风暴压垮客户端
30
- - 单向推送优先使用 SSE(更简单),双向通信才使用 WebSocket
31
- - 生产环境 WebSocket 必须通过 Nginx 反向代理,配置超时和连接数限制
32
- - 前端组件卸载时必须关闭 WebSocket 连接,防止内存泄漏
33
- - WebSocket 连接必须有自动重连机制(指数退避策略),断线后自动恢复
34
- - 推送消息必须携带消息 ID 和时间戳,支持客户端去重和排序
35
- - 服务端必须实现消息缓冲,用户短暂离线后重连可获取未读消息
36
- - 推送消息体必须精简(≤ 4KB),大数据通过接口拉取,不通过推送传输
37
- - 必须支持优雅降级(WebSocket → SSE → 轮询),兼容不同网络环境
38
-
39
- ## 验收项
40
- - [AC-01] 有心跳和自动重连机制
41
- - [AC-02] 重连使用指数退避
42
- - [AC-03] 消息有去重处理
43
- - [AC-04] 组件卸载关闭连接
44
- - [AC-05] 未确认消息有补偿机制
45
- - [AC-06] 自动重连机制
46
- - [AC-07] 消息去重和排序
47
- - [AC-08] 离线消息缓冲
48
- - [AC-09] 降级策略(WS→SSE→轮询)
@@ -1,58 +0,0 @@
1
- ---
2
- id: ka-artifact_template-审查摘要
3
- kind: artifact
4
- title: 审查摘要
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: review-summary
9
- scope:
10
- - '*'
11
- products:
12
- - '*'
13
- lifecycle_status: active
14
- version: 1.2.0
15
- last_reviewed: '2026-06-04'
16
- type: artifact
17
- domain: verify
18
- stage: verify
19
- owner_mechanism: mc-verifier
20
- ---
21
-
22
- ## 摘要格式规范
23
-
24
- 每个白盒审查项必须生成压缩摘要,格式为:
25
- `[文件名:行号] 维度: 标题`
26
-
27
- 示例:
28
- ```text
29
- [llm_gateway.ts:156] security: Token 预算未检查
30
- [evolver.ts:42] quality: 知识提取逻辑缺失空值守卫
31
- ```
32
-
33
- ## 维度覆盖
34
- 维度覆盖: 安全✅ 性能✅ 并发✅ 架构✅ SOLID✅ 契约✅ 可维护性✅ 交付✅ 决策❌ 交叉验证✅
35
- AI 盲区维度: [列出未覆盖维度及建议补充方式]
36
-
37
- ## 汇报格式
38
-
39
- ```text
40
- 审查结果: X 项发现
41
- - 白盒 (可跳过): N 项 — [一句话汇总]
42
- - 灰盒 (需签署): N 项 — [逐项展示 + 抽检回溯摘要流]
43
- - 黑盒 (强制签署): N 项 — [逐项展示 + 等待 [Human-Audit: APPROVED]]
44
- ```
45
-
46
- ## 抽检哨兵规则
47
-
48
- - 每处理 10 个白盒项,强制随机升级 1 个为灰盒
49
- - 升级时自动渲染前置白盒摘要流(spot_check_backtrace)
50
- - 摘要流格式: 连续的白盒项摘要,供人类快速回溯
51
- - 人类审计时随机提问: 基于任务摘要生成是/否问题,校验审计真实性
52
-
53
- ## 回溯链路
54
-
55
- 1. 白盒项分类时自动缓存到 summaryCache(模块级 Map)
56
- 2. 抽检哨兵触发时从缓存渲染所有白盒摘要
57
- 3. renderSummaryBacktrace(taskId) 支持回溯任意历史任务
58
- 4. 回溯摘要附加到 CodeReviewResult.spot_check_backtrace