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,221 +0,0 @@
1
- ---
2
- id: ka-rule-切片端到端验证规则
3
- kind: guidance
4
- title: 切片端到端验证
5
- sync_policy: copy_to_project
6
- status: active
7
- triggers:
8
- - 切片端到端验证
9
- - 切片验证
10
- - E2E验证
11
- - slice e2e
12
- extra:
13
- name: slice-e2e-verification
14
- type: constraint
15
- scope:
16
- - backend
17
- - frontend
18
- products:
19
- - '*'
20
- lifecycle_status: active
21
- domain: build
22
- verification_layer: L2
23
- stage: build
24
- owner_mechanism: mc-generic-review
25
- ---
26
-
27
- # 切片端到端验证规则(Docker 部署 + 浏览器多维交叉验证)
28
-
29
- > 本规则适用阶段:编码与单元测试
30
- > 触发时机:每个切片编码完成后、标记切片通过前
31
-
32
- ## 总则
33
-
34
- 每个切片完成后,**必须**将后端服务和 Web 服务部署到本地 Docker,
35
- 然后通过浏览器(Playwright)打开运行中的系统,对**原型、需求、设计**三个维度
36
- 进行交叉验证。
37
-
38
- 验证未通过的切片不得标记为完成。
39
-
40
- ## 对抗性审查协议(强制)
41
-
42
- 你正在执行切片端到端验证。你是严格的质量审查员,你的职责是发现问题,不是放行。
43
-
44
- ### 审查原则(违反任何一条等同验证失败)
45
-
46
- 1. **默认立场**:每一条检查项都是 ❌,除非你能提供浏览器实际截图或页面内容作为证据
47
- 2. **无证据的 ✅ 等同于 ❌** — 你必须通过 Playwright 打开页面、截图、提取元素,不接受自述"页面正常"
48
- 3. **禁止批量标记 ✅** — 每条检查项必须独立操作浏览器并附证据
49
- 4. **禁止跳过任何检查项**
50
-
51
- ### 执行流程
52
-
53
- **阶段 A: 部署 + 三维交叉验证**
54
-
55
- > **⚠️ 绝对不允许只检查"Docker 可用"就跳过部署!**
56
- > 你必须**实际执行** `docker compose up -d --build` 并在输出中包含 `docker ps` 结果。
57
-
58
- 1. **实际执行部署命令**:运行 `docker compose up -d --build`,等待容器启动完成
59
- 2. **输出部署证据**:运行 `docker ps` 并将输出(包含容器名、状态、端口映射)完整展示给用户
60
- 3. **确认 Docker Desktop 可见**:用户必须在本地 Docker Desktop 中看到运行中的容器
61
- 4. 构建 Web 服务 Docker 镜像并启动
62
- 5. 通过 Playwright 打开浏览器,访问 Web 服务
63
- 6. 逐维度验证:
64
-
65
- #### 维度 1: 原型交叉验证(UI / 交互一致性)
66
-
67
- 将浏览器中实际页面与原型说明文档逐页对比:
68
- - 页面布局是否与原型一致(导航结构、区域划分、组件位置)
69
- - 交互行为是否与原型描述一致(按钮点击、表单提交、状态切换)
70
- - 文案是否与原型一致(标题、标签、提示文本、错误消息)
71
-
72
- **证据要求**:Playwright 截图 + 原型说明文档中的对应描述引用
73
-
74
- #### 维度 2: 需求交叉验证(功能点覆盖)
75
-
76
- 将浏览器中实际操作与需求文档逐条对比:
77
- - 需求文档中的每个功能点是否可在浏览器中操作验证
78
- - 正常流程是否可走通
79
- - 边界条件是否已处理(空数据、超长输入、异常状态)
80
-
81
- **证据要求**:Playwright 操作步骤 + 实际结果 + 需求文档中的对应条目引用
82
-
83
- #### 维度 3: 设计交叉验证(接口 / 数据一致性)
84
-
85
- 将浏览器中实际数据流与设计文档对比:
86
- - API 接口签名是否与 API 接口规格文档一致(路径、参数、响应格式)
87
- - 数据展示是否与数据库设计文档中的字段定义一致
88
- - 前后端数据流转是否与详细设计文档描述一致
89
-
90
- **证据要求**:浏览器 Network 请求/响应截图 + 设计文档中的对应定义引用
91
-
92
- → 产出完整三维验证报告(每条 ❌ + 问题描述 或 ✅ + 截图/引用证据)
93
-
94
- **阶段 B: 强制修复**
95
-
96
- 对验证报告中的每一个 ❌ 和 ⚠️ 项:
97
- 1. 修复代码或配置
98
- 2. 重新构建 Docker 镜像
99
- 3. 重新部署并重新通过浏览器验证
100
- 4. 不允许只报告不修复
101
-
102
- **阶段 C: 独立重审(强制)**
103
-
104
- 修复完成后,你必须再次调用 `审查 切片` 工具进行独立重审。
105
- 这不是可选的——这是强制性的质量保证步骤。
106
- 如果重审发现问题 → 回到阶段 B 继续修复(最多 5 轮)。
107
-
108
- **阶段 D: 人工验证(强制)**
109
-
110
- AI 验证通过后,Docker 服务**必须保持运行**,然后**必须输出以下格式的地址**供人工验证:
111
-
112
- ```text
113
- ═══ 人工验证地址 ═══
114
- 后端服务: <http://localhost:{实际端口}>
115
- Web 服务: <http://localhost:{实际端口}>
116
- ════════════════════
117
- ```
118
-
119
- - `{实际端口}` 必须替换为 `docker ps` 输出中映射的真实端口号
120
- - 不允许输出 `{PORT}` 占位符 — 必须是用户可直接点击的具体地址
121
- - 同时输出 `docker ps` 结果,让用户确认 Docker Desktop 中可见
122
-
123
- 人工在浏览器中确认系统功能和界面无误后,**必须把人工确认证据放入证据目录**:
124
-
125
- - 目录:`.soloforge/evidence/{sliceId}/SLICE-E2E-13/`
126
- - 证据形式:确认截图 `.png` 或确认记录 `.txt`
127
- - `SLICE-E2E-13` 门禁(`file_evidence`)据此校验**证据文件存在**
128
- - ⚠️ 门禁只证「证据文件存在」,**不替代人工判断**(人是否真看了由人负责,gate 不假装能判)
129
- - 证据就位后,切片方可标记为完成
130
-
131
- Docker 服务在人工确认前不得停止或删除。
132
-
133
- ### 终止条件
134
-
135
- 1. 三维验证报告全部 ✅ + 每条附浏览器截图或页面内容证据
136
- 2. Docker 服务保持运行,访问地址已输出
137
- 3. 人工确认通过 → 切片完成
138
- 4. 达到最大 5 轮 AI 修复仍不通过 → 停止,报告剩余未通过项
139
-
140
- ### 禁止事项
141
-
142
- - ⚠️ 绝对不允许以"本地环境不支持 Docker"为由跳过验证
143
- - ⚠️ 绝对不允许只说"Docker 可用"而不实际执行 `docker compose up -d --build` 部署
144
- - ⚠️ 绝对不允许部署后不输出 `docker ps` 结果 — 用户必须能在 Docker Desktop 中看到容器
145
- - ⚠️ 绝对不允许仅输出验证报告就停下来 — 验证失败必须修复
146
- - ⚠️ 绝对不允许用"我检查过了"代替浏览器实际截图
147
- - ⚠️ 绝对不允许只看首页就标记全部通过 — 必须覆盖切片涉及的全部页面和功能
148
- - ⚠️ 绝对不允许跳过独立重审步骤
149
- - ⚠️ 绝对不允许 AI 验证通过后就停止 Docker 服务 — 必须保持运行供人工确认
150
- - ⚠️ 绝对不允许跳过人工验证就标记切片完成
151
- - ⚠️ 绝对不允许不输出人工验证地址 — 必须明确输出后端和前端的 `localhost:{实际端口}` 地址
152
-
153
- ## SLICE-E2E 规则条目
154
-
155
- > 以下 13 条与 `slice-gate.yaml` 的 13 个 check **一一对应、编号一致**。
156
- > 规则(本文件)管「怎么做」,门禁(yaml)管「够不够」——两层编号必须对齐,不可分裂。
157
-
158
- **SLICE-E2E-01** Docker 服务部署成功:后端 + Web 均部署到本地 Docker,容器 Running
159
- - 强制:是(error)
160
- - 执行器:`docker_deployment`(真跑 `docker compose up -d --build`)
161
- - 证据:`docker ps` 输出(须显示容器 Running)
162
-
163
- **SLICE-E2E-02** 服务 HTTP 可访问:真发请求校验 2xx/3xx(截图存在 ≠ 服务可访问)
164
- - 强制:是(error)
165
- - 执行器:`local_http_acceptance`(真 fetch,防造假截图)
166
- - 证据:HTTP 状态码 2xx/3xx + 响应 body 片段
167
-
168
- **SLICE-E2E-03** 原型维度 — 页面布局与原型一致(导航/区域/组件逐页对比)
169
- - 强制:是(error)
170
- - 执行器:`file_evidence`
171
- - 证据:Playwright 页面截图 + 原型说明文档章节引用
172
-
173
- **SLICE-E2E-04** 原型维度 — 交互行为与原型一致(点击/提交/状态切换)
174
- - 强制:是(error)
175
- - 执行器:`file_evidence`
176
- - 证据:Playwright 操作前后截图 + 原型交互描述引用
177
-
178
- **SLICE-E2E-05** 需求维度 — 功能点可操作验证(需求文档每个功能点可操作)
179
- - 强制:是(error)
180
- - 执行器:`file_evidence`
181
- - 证据:Playwright 操作步骤 + 结果截图 + 需求条目引用
182
-
183
- **SLICE-E2E-06** 需求维度 — 正常流程可走通(核心业务端到端)
184
- - 强制:是(error)
185
- - 执行器:`file_evidence`
186
- - 证据:Playwright 端到端操作截图序列 + 最终结果页
187
-
188
- **SLICE-E2E-07** 需求维度 — 边界条件已处理(空数据/超长/异常)
189
- - 强制:否(warning,不阻断但记录)
190
- - 执行器:`file_evidence`
191
- - 证据:边界场景 Playwright 截图 + 错误提示内容
192
-
193
- **SLICE-E2E-08** 设计维度 — 接口签名与 API 规格一致(路径/参数/响应)
194
- - 强制:是(error)
195
- - 执行器:`file_evidence`
196
- - 证据:浏览器 Network 请求/响应截图 + API 接口规格引用
197
-
198
- **SLICE-E2E-09** 设计维度 — 数据展示与数据库设计一致(字段/类型/格式)
199
- - 强制:是(error)
200
- - 执行器:`file_evidence`
201
- - 证据:页面数据展示截图 + 数据库设计字段定义引用
202
-
203
- **SLICE-E2E-10** 验证报告附浏览器实际截图(不接受 AI 自述「已验证」)
204
- - 强制:是(error)
205
- - 执行器:`file_evidence`
206
- - 证据:验证报告每条检查项对应的 Playwright 截图引用
207
-
208
- **SLICE-E2E-11** 失败项已全部修复并通过重验(对比修复前后截图)
209
- - 强制:是(error)
210
- - 执行器:`tool_trace_review`
211
- - 证据:修复前后 Playwright 截图 + 修复说明
212
-
213
- **SLICE-E2E-12** Docker 服务保持运行,访问地址已输出(供人工确认)
214
- - 强制:是(error)
215
- - 执行器:`docker_deployment`
216
- - 证据:后端地址 + Web 地址(`<http://localhost:{实际端口}>`)
217
-
218
- **SLICE-E2E-13** 人工确认通过(证据放 `.soloforge/evidence/{sliceId}/SLICE-E2E-13/`)
219
- - 强制:是(error)
220
- - 执行器:`file_evidence`(只证文件存在,不替代人工判断)
221
- - 证据:确认截图 `.png` 或确认记录 `.txt`
@@ -1,66 +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
- - feature
11
- - 新增功能
12
- - 需求开发
13
- - 功能实现
14
- - 新建功能
15
- extra:
16
- name: feature-development
17
- type: procedure
18
- scope:
19
- - backend
20
- - frontend
21
- products:
22
- - '*'
23
- lifecycle_status: active
24
- version: 1.2.0
25
- last_reviewed: '2026-06-04'
26
- domain:
27
- - build
28
- - verify
29
- verification_layer: L2
30
- stage: build
31
- owner_mechanism: mc-task-context-lifecycle
32
- ---
33
-
34
- ## 适用场景
35
- 从需求到上线的完整功能开发流程。适用于需要前后端协作的中等及以上复杂度功能。
36
-
37
- ## 步骤
38
- 1. 需求澄清:确认功能边界、验收标准、影响范围
39
- 2. 技术方案设计:确定接口契约(API 定义)、数据模型、技术选型
40
- 3. 自主技术选型(若涉及架构级选型):检索行业基准(结合通用知识 + sf_knowledge 项目沉淀) → 四维矩阵 → 证伪循环 → A/B 决策诱导 → 等待人类选择
41
- 4. 前后端对齐:API 文档/接口契约评审,确认字段和状态流转
42
- 5. 后端开发:按 crud-operation / api-pagination 等模式实现,先写接口再写逻辑
43
- 6. 前端开发:按 react-component / react-api-integration 等模式实现页面和接口对接
44
- 7. **切片验证**:运行当前切片的单元测试 → 检查覆盖率(≥9 场景)→ 确认变更在涉及文件范围内 → 更新切片测试状态(pending→red→green→refactored)
45
- 8. 联调测试:前后端联调,验证完整流程
46
- 9. 代码审查:使用 sf_work action=verify 检查质量/安全/性能
47
- 10. 提测:部署到测试环境,执行验收标准
48
- 11. 修复反馈问题后准备发布
49
-
50
- ## 检查点
51
- - [ ] API 接口契约已对齐并文档化
52
- - [ ] 后端接口有 Swagger/OpenAPI 文档
53
- - [ ] 核心逻辑有单元测试覆盖
54
- - [ ] 前后端联调通过
55
- - [ ] 涉及技术选型时已完成行业基准对齐
56
- - [ ] 交付物末尾已签署终局宣言
57
- - [ ] 切片验证点已执行(步骤 7)
58
-
59
- ## 注意事项
60
- - 接口契约先于实现(避免前端等后端)
61
- - 复杂功能拆分为多个子任务并行开发
62
- - 每个子任务完成后及时联调,不要全部完成后才联调
63
- - 编码前确认交付蓝图状态,敏感领域(金额算法/状态流转/审批规则/跨系统同步)需用户确认
64
- - 通过交付蓝图的必须读/可选读/默认不读列表控制上下文,禁止默认读取全部上游文档
65
- - 修复限于同一限界上下文可继续;跨越无关模块必须返回任务拆解
66
- - 变更映射必须覆盖所有改动,unmapped_changes 不允许非零
@@ -1,39 +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: backend-implementation-acceptance
9
- scope:
10
- - backend
11
- products:
12
- - '*'
13
- lifecycle_status: active
14
- version: 1.2.0
15
- last_reviewed: '2026-06-04'
16
- type: artifact
17
- domain: build
18
- stage: build
19
- owner_mechanism: mc-backend-implementation-contract
20
- ---
21
-
22
- # 后端实现验收清单
23
-
24
- | 检查项 | 结论 | 权威证据 | 失败修复 |
25
- |---|---|---|---|
26
- | 请求 DTO 与字段校验 | | | |
27
- | 响应 DTO、分页与错误码 | | | |
28
- | 事务和状态流转 | | | |
29
- | 幂等与并发冲突 | | | |
30
- | 权限、租户和审计 | | | |
31
- | OpenAPI 与 migration 对齐 | | | |
32
- | 自动化测试和负向案例 | | | |
33
-
34
- ## 字段级追踪(按 API Endpoint)
35
- | Endpoint | 字段路径 | DTO 映射 | 校验规则 | 测试用例 | 状态 |
36
- |----------|---------|---------|---------|---------|------|
37
- | POST /api/v1/xxx | request.field1 | CreateXxxDTO | @NotNull | T-02, T-04 | ✅/❌ |
38
- | GET /api/v1/xxx/{id} | response.data.field | XxxVO | @NotBlank | T-01, T-03 | ✅/❌ |
39
- | PUT /api/v1/xxx/{id} | request.field2 | UpdateXxxDTO | @Size(max=100) | T-05 | ✅/❌ |
@@ -1,33 +0,0 @@
1
- ---
2
- id: ka-pattern-backend-implementation-engineering
3
- kind: knowledge
4
- title: 后端实现工程
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: backend-implementation-engineering
9
- scope:
10
- - backend
11
- products:
12
- - '*'
13
- lifecycle_status: active
14
- version: 1.1.0
15
- last_reviewed: '2026-06-01'
16
- type: knowledge
17
- domain:
18
- - build
19
- - verify
20
- verification_layer: L2
21
- stage: build
22
- owner_mechanism: mc-backend-implementation-contract
23
- ---
24
-
25
- ## 工程规则
26
-
27
- - Controller 入参与出参按接口语义使用 DTO/VO,不暴露数据库实体。
28
- - 参数必须验证必填、长度、枚举、金额、日期区间和关联对象存在性。
29
- - 列表接口限制 page size 并对白名单排序;响应使用统一分页对象。
30
- - 写操作在 Service 定义清晰事务边界;外部调用不放在长事务内。
31
- - 支付、回调、创建与状态流转具备幂等键、并发控制和重复提交测试。
32
- - 敏感操作必须校验权限和租户,并产出可追踪审计记录。
33
- - OpenAPI、字段表、错误码和 migration 必须与实现同步复验。
@@ -1,70 +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
- - Controller
10
- - DTO
11
- - 事务
12
- - 幂等
13
- - 权限
14
- extra:
15
- name: backend-implementation-review
16
- type: constraint
17
- scope:
18
- - backend
19
- products:
20
- - '*'
21
- lifecycle_status: active
22
- version: 1.2.0
23
- last_reviewed: '2026-06-04'
24
- domain: build
25
- verification_layer: L2
26
- stage: build
27
- owner_mechanism: mc-backend-implementation-contract
28
- ---
29
-
30
- # 后端实现工程审查规则
31
-
32
- ## BIE-01: Controller 边界
33
- id: BIE-01
34
- name: Controller 边界
35
- severity: error
36
- check_type: deterministic
37
- check_hint: Controller 入参/出参使用数据库实体 → 改为 DTO/VO 并显式映射
38
- description: Controller 层不得直接暴露数据库实体。入参使用 RequestDTO,出参使用 ResponseVO/ResponseDTO,通过 Mapper 显式转换。
39
-
40
- ## BIE-02: 参数校验
41
- id: BIE-02
42
- name: 参数校验
43
- severity: error
44
- check_type: deterministic
45
- check_hint: POST/PUT/PATCH 端点必须有参数校验注解或验证器,且校验失败有测试覆盖
46
- description: 所有 POST/PUT/PATCH 端点必须使用 @Valid/@Validated 或自定义 Validator。校验失败的路径必须有测试用例覆盖。
47
-
48
- ## BIE-03: 事务
49
- id: BIE-03
50
- name: 事务
51
- severity: error
52
- check_type: deterministic
53
- check_hint: 事务中不得调用 HTTP/MQ/外部 SDK;违反须拆分边界或采用 outbox/补偿模式
54
- description: 事务范围内禁止包含 HTTP 调用、消息队列发送、外部 SDK 调用。需要跨系统一致性时使用 outbox 模式或补偿事务。
55
-
56
- ## BIE-04: 幂等
57
- id: BIE-04
58
- name: 幂等
59
- severity: error
60
- check_type: deterministic
61
- check_hint: 支付、回调或写入操作必须有幂等证据(请求键/唯一约束/重复提交测试)
62
- description: 涉及支付、回调、写入的接口必须有幂等保护。通过请求键(idempotency key)、数据库唯一约束或分布式锁实现,并提供重复提交测试用例。
63
-
64
- ## BIE-05: 安全审计
65
- id: BIE-05
66
- name: 安全审计
67
- severity: error
68
- check_type: deterministic
69
- check_hint: 敏感接口必须有权限校验、租户隔离和审计日志
70
- description: 涉及敏感数据的接口必须实现权限校验(RBAC/ABAC)、多租户数据隔离、操作审计日志。缺少任一项视为 hard_fail。
@@ -1,43 +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
- - Controller
10
- - DTO
11
- - API实现
12
- - 数据写入
13
- extra:
14
- name: backend-api-implementation
15
- type: procedure
16
- scope:
17
- - backend
18
- products:
19
- - '*'
20
- lifecycle_status: active
21
- version: 1.1.0
22
- last_reviewed: '2026-06-01'
23
- domain: build
24
- verification_layer: L2
25
- stage: build
26
- owner_mechanism: mc-backend-implementation-contract
27
- ---
28
-
29
- ## 步骤
30
-
31
- 1. 确认 OpenAPI、数据库 migration、权限与状态流转基线。
32
- 2. 定义请求 DTO、响应 DTO、字段校验、错误码和分页排序边界。
33
- 3. 定义应用服务事务边界、幂等策略、并发控制和审计事件。
34
- 4. 编码并执行单元、集成、权限、重复提交与契约一致性验证。
35
- 5. 审查 finding 清零并提供验收证据后交付。
36
-
37
- ## 工作包
38
-
39
- | 类别 | 需明确内容 | 证据 |
40
- |---|---|---|
41
- | 接口边界 | DTO、统一响应、错误码、分页 | OpenAPI/测试 |
42
- | 一致性 | 事务、幂等、并发、状态流转 | migration/集成测试 |
43
- | 安全 | 权限、租户、审计、隐私 | 越权测试/审计日志 |
@@ -1,45 +0,0 @@
1
- ---
2
- id: ka-pattern-i18n-l10n
3
- kind: knowledge
4
- title: 国际化
5
- sync_policy: copy_to_project
6
- status: active
7
- extra:
8
- name: i18n-l10n
9
- scope:
10
- - frontend
11
- products:
12
- - '*'
13
- lifecycle_status: active
14
- version: 1.1.0
15
- last_reviewed: '2026-06-01'
16
- type: knowledge
17
- domain: build
18
- verification_layer: L2
19
- stage: build
20
- owner_mechanism: mc-frontend-pattern
21
- ---
22
-
23
- ## 决策规则
24
- - 所有用户可见文案禁止硬编码,必须使用 i18n key(如 t('user.login.title'))
25
- - 日期格式必须按 locale 显示(中文 yyyy-MM-dd,英文 MM/dd/yyyy),禁止固定格式
26
- - 金额必须按 locale 格式化(符号位置、千位分隔符、小数位数)
27
- - 后端接口返回的錙误码必须映射为前端多语言提示,禁止直接展示后端錙误消息
28
- - 语言资源文件必须按模块拆分,禁止单一大文件(建议 pages/common/components 分目录)
29
- - 新增语言只需新增资源文件,不修改业务代码
30
- - 接口返回的业务数据(枚举、状态名)由后端提供多语言字段,前端不维护业务数据翻译
31
- - 所有用户可见文本必须通过 i18n 资源文件管理,禁止硬编码字符串
32
- - 日期/时间必须根据用户时区显示,禁止使用服务端固定时区
33
- - 数字/货币格式必须根据 locale 格式化(如 1,234.56 vs 1.234,56)
34
- - 文案翻译必须由专业翻译完成,禁止机器翻译直接上线
35
- - 多语言文案禁止拼装(如 "欢迎" + userName),应使用带占位符的完整模版
36
-
37
- ## 验收项
38
- - [AC-01] 用户可见文案通过 i18n key 引用
39
- - [AC-02] 日期和金额按 locale 格式化
40
- - [AC-03] 錙误码映射为多语言提示
41
- - [AC-04] 资源文件按模块拆分
42
- - [AC-05] 无硬编码用户可见文本
43
- - [AC-06] 日期时间按时区显示
44
- - [AC-07] 数字货币按 locale 格式化
45
- - [AC-08] 无拼装多语言文案
@@ -1,68 +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
- - build
10
- - 安全修复
11
- - 漏洞修复
12
- - 合规整改
13
- - 安全检查
14
- - 安全增强
15
- extra:
16
- name: security-hardening-pipeline
17
- type: procedure
18
- scope:
19
- - backend
20
- - frontend
21
- products:
22
- - '*'
23
- lifecycle_status: active
24
- version: 1.1.0
25
- last_reviewed: '2026-06-01'
26
- domain:
27
- - build
28
- - verify
29
- verification_layer: L2
30
- stage: build
31
- owner_mechanism: mc-privacy-boundary
32
- ---
33
-
34
- # 安全加固管线
35
-
36
- ## 第1步:安全审计
37
- 扫描现有代码和配置的安全漏洞(OWASP Top 10 维度)。检查认证授权机制的完整性。检查数据加密和脱敏策略。检查第三方依赖的已知漏洞。
38
- 模版:安全审计.md
39
- 产出保存到:docs/review/\*\*/*审查*.md
40
- 工具:sf_analyze
41
-
42
- ## 第2步:方案设计
43
- 按风险等级(Critical/High/Medium/Low)排序修复优先级。针对每个漏洞设计修复方案。评估修复对现有功能的影响。确定合规要求(数据加密/审计日志/访问控制)。
44
- 产出保存到:docs/architecture/01-架构设计文档.md
45
-
46
- ## 第3步:安全修复
47
- 按优先级逐个修复安全漏洞。每个修复后回归验证功能无影响。禁止降级安全等级来通过测试。
48
- 工具:sf_work action=act
49
-
50
- ## 第4步:验证验收
51
- 重新扫描确认漏洞已修复。代码审查专注安全维度。学习记录(漏洞类型、修复模式、预防规则)。
52
- 工具:sf_work action=verify, sf_gate
53
-
54
- ## 第5步:深度安全扫描
55
- 运行依赖漏洞扫描(npm audit / OWASP Dependency-Check),高危漏洞阻断构建。运行容器镜像扫描(Trivy / Snyk),检测基础镜像已知漏洞。检查生产环境配置(禁用 debug 模式、关闭 actuator 暴露端点、验证 HTTPS 强制)。
56
-
57
- ## 检查点
58
- - [ ] 漏洞扫描报告已输出
59
- - [ ] 修复方案已评审
60
- - [ ] 验收扫描无高危漏洞
61
- - [ ] 依赖漏洞扫描无高危漏洞
62
- - [ ] 容器镜像扫描通过
63
- - [ ] 生产配置安全检查通过
64
-
65
- ## 注意事项
66
- - 修复前必须评估对现有功能的影响,尤其是认证授权模块
67
- - 漏洞修复优先级:Critical > High > Medium > Low,Critical/High 必须在上线前修复
68
- - 误报的漏洞必须记录到白名单并定期复核