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
@@ -2,100 +2,260 @@
2
2
  id: design-enforced
3
3
  kind: enforced
4
4
  gate: design-gate
5
- title: design阶段强制检查清单
5
+ title: design 阶段强制检查清单
6
6
  sync_policy: engine_only
7
7
  status: active
8
+ extra:
9
+ owner_mechanism: mc-stage-gate-engine
8
10
  checks:
9
- - id: ARC-01
11
+ # —— 产物结构完整性(document_structure,逼产物质量)——
12
+ - id: REQ-STRUCT
13
+ executor: document_structure
14
+ check_type: deterministic
15
+ severity: error
16
+ gate: design-gate
17
+ required_artifact: 需求分析模版
18
+ rule: "需求分析文档须含「需求来源」「根本目标」「功能点清单」「非功能需求」「用户角色」「外部接口」「系统形态与交付边界」「完成判定」章节"
19
+ evidence_required:
20
+ - "docs/context/需求分析.md"
21
+ target: self
22
+ - id: REQ-ID-FMT
10
23
  executor: regex_pattern_scan
11
- rule: "Controller 禁止包含业务逻辑(计算/校验等应下沉 Service)"
24
+ rule: "需求 REQ ID 须纯数字(REQ-001)或中文模块段(REQ-用户-01);禁止字母/字母数字模块段(REQ-M01-01)与占位符(REQ-NNN)——cross_validation 正则只认纯数字/中文模块段,前置校验避免产出后双向改 ID"
12
25
  severity: error
13
26
  check_type: deterministic
14
- pattern: '/\bclass\s+\w*Controller\b[\s\S]{0,500}\b(if|for|while|calculate|compute)\s*\(/'
15
- languages: [java]
16
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无 Controller 含业务逻辑命中)"]
17
- gate: verify-gate
18
- target: "self"
19
- - id: ARC-02
20
- executor: regex_pattern_scan
21
- rule: "禁止 Entity 直接暴露给外部接口,必须用 DTO"
27
+ pattern: '/REQ-[A-Za-z]/'
28
+ languages: [通用]
29
+ required_artifact: 需求分析模版
30
+ evidence_required: ["regex_pattern_scan 扫描结果(SRS 无 REQ-字母模块段/占位符命中)"]
31
+ gate: design-gate
32
+ target: self
33
+ - id: ARCH-STRUCT
34
+ executor: document_structure
35
+ check_type: deterministic
22
36
  severity: error
37
+ gate: design-gate
38
+ required_artifact: 架构设计模版
39
+ rule: "架构设计文档须含「决策记录」「约束条件」「模块划分」「架构组成」「安全架构」「技术选型」「风险与回滚」「产物适用性」「完成判定」章节"
40
+ evidence_required:
41
+ - "docs/architecture/01-架构设计文档.md"
42
+ target: self
43
+ # —— 前端模块化结构(ARCH-FE-STRUCT:§6.3 端模块清单 FE-*,承接需求 §9 系统形态)——
44
+ - id: ARCH-FE-STRUCT
45
+ executor: document_structure
46
+ check_type: deterministic
47
+ severity: warning
48
+ gate: design-gate
49
+ required_artifact: 架构设计模版
50
+ rule: "架构 §6.3 端模块清单含 FE-* ID 表格行(承接需求 §9 端清单);纯后端项目填「不适用」放行(warning 级不强阻断)"
51
+ block_check:
52
+ item_pattern: '端模块清单'
53
+ required_marks: ['FE-']
54
+ require_table: true
55
+ min_table_rows: 1
56
+ evidence_required:
57
+ - "docs/architecture/01-架构设计文档.md"
58
+ target: self
59
+ - id: DB-STRUCT
60
+ executor: document_structure
23
61
  check_type: deterministic
24
- pattern: '/\bpublic\s+\w*Entity\b\s+\w+\s*\(/'
25
- languages: [java]
26
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无 Entity 直接暴露命中)"]
27
- gate: verify-gate
28
- target: "self"
29
- - id: ARC-03
30
- executor: regex_pattern_scan
31
- rule: "写操作(save/create/update/delete)必须有 @Transactional"
32
62
  severity: error
63
+ gate: design-gate
64
+ required_artifact: 数据库设计文档模版
65
+ rule: "数据库设计文档须含「目标数据库」「实体与关系」「表字段」「约束」「Migration」「回滚」「映射表」「真实验证证据」「完成判定」章节"
66
+ evidence_required:
67
+ - "docs/design/01-数据库设计文档.md"
68
+ target: self
69
+ - id: API-STRUCT
70
+ executor: document_structure
33
71
  check_type: deterministic
34
- pattern: '/\.(save|insert|update|delete|remove|create)\s*\(/'
35
- languages: [java]
36
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无写操作缺事务命中)"]
37
- gate: verify-gate
38
- target: "self"
39
- - id: ARC-04
40
- executor: regex_pattern_scan
41
- rule: "禁止直接 new Service/Repository/Mapper/Manager,必须依赖注入"
72
+ severity: warning
73
+ gate: design-gate
74
+ required_artifact: API接口规格文档模版
75
+ rule: "API 接口规格文档须含「Endpoint」「请求体字段」「响应体字段」「错误与副作用」「验收场景」「完成判定」章节"
76
+ evidence_required:
77
+ - "docs/design/02-API接口规格文档.md"
78
+ target: self
79
+ - id: API-BLOCK
80
+ executor: document_structure
81
+ check_type: deterministic
82
+ severity: error
83
+ gate: design-gate
84
+ required_artifact: API接口规格文档模版
85
+ rule: "每个 endpoint 块须含基本信息/响应体/错误与副作用/验收场景 且有表格(反退化:禁前详后废/表格→文字/同上占位)"
86
+ block_check:
87
+ item_pattern: '^###\s+Endpoint'
88
+ required_marks: ['基本信息', '响应体', '错误与副作用', '验收场景']
89
+ require_table: true
90
+ min_table_rows: 4
91
+ evidence_required: ["docs/design/02-API接口规格文档.md"]
92
+ target: self
93
+ - id: SLICE-PLAN-STRUCT
94
+ executor: document_structure
95
+ rule: "开发切片计划须含「PHASE」「SLC」「AC」「完成判定」章节"
42
96
  severity: error
43
97
  check_type: deterministic
44
- pattern: '/\bnew\s+\w*(Service|Repository|Repo|Dao|Mapper|Manager)\s*\(/'
45
- languages: [java]
46
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无直接 new 服务对象命中)"]
47
- gate: verify-gate
48
- target: "self"
49
- - id: ARC-06
50
- executor: regex_pattern_scan
51
- rule: "前端 API 调用必须封装到 service 层,禁止组件内直接 fetch/axios"
98
+ required_artifact: 切片计划模版
99
+ evidence_required: ["docs/architecture/02-开发切片计划.md"]
100
+ gate: design-gate
101
+ target: self
102
+ # —— 产物间一致性(cross_validation:ID 引用一致+覆盖,确定性)——
103
+ - id: XVAL-ARCH-REQ
104
+ executor: cross_validation
105
+ rule: "REQ-* 一致性+覆盖率"
52
106
  severity: error
53
107
  check_type: deterministic
54
- pattern: '/\b(fetch|axios)\s*\(/'
55
- languages: [ts]
56
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无组件直接 API 调用命中)"]
57
- gate: verify-gate
58
- target: "self"
59
- - id: ARC-07
60
- executor: regex_pattern_scan
61
- rule: "禁止 @Autowired + @Lazy 循环依赖"
108
+ required_artifact: 架构设计模版
109
+ evidence_required: ["需求分析模版"]
110
+ gate: design-gate
111
+ target: self
112
+ - id: XVAL-API-REQ
113
+ executor: cross_validation
114
+ rule: "REQ-* 一致性+覆盖率"
115
+ severity: warning
116
+ check_type: deterministic
117
+ required_artifact: API接口规格文档模版
118
+ evidence_required: ["需求分析模版"]
119
+ gate: design-gate
120
+ target: self
121
+ - id: XVAL-ARCH-API
122
+ executor: cross_validation
123
+ rule: "DD-A* 一致性(架构引用的 API ID 须在 API 文档存在;不强制覆盖率——架构不逐一引用所有 API ID)"
124
+ severity: warning
125
+ check_type: deterministic
126
+ required_artifact: 架构设计模版
127
+ evidence_required: ["API接口规格文档模版"]
128
+ gate: design-gate
129
+ target: self
130
+ - id: XVAL-ARCH-DB
131
+ executor: cross_validation
132
+ rule: "DD-T* 一致性(架构引用的 DB ID 须在 DB 文档存在;不强制覆盖率——架构不逐一引用所有 DB ID)"
133
+ severity: warning
134
+ check_type: deterministic
135
+ required_artifact: 架构设计模版
136
+ evidence_required: ["数据库设计文档模版"]
137
+ gate: design-gate
138
+ target: self
139
+ - id: XVAL-SLC
140
+ executor: cross_validation
141
+ rule: "ARCH-*/FE-* 一致性+覆盖率"
142
+ severity: warning
143
+ check_type: deterministic
144
+ required_artifact: 切片计划模版
145
+ evidence_required: ["架构设计模版"]
146
+ gate: design-gate
147
+ target: self
148
+ # —— 产物适用性强制(治本「按需产出」:声明适用必产/不适用放行)——
149
+ - id: XVAL-DBAPI-APPLICABILITY
150
+ executor: applicability_check
151
+ rule: "design_doc 产物适用性强制:database_design/api_specification 声明「适用」须产出对应产物,声明「不适用」放行(前端/无后端按需不产),未声明须表态"
62
152
  severity: error
63
153
  check_type: deterministic
64
- pattern: '/@Autowired[\s\S]{0,50}@Lazy|@Lazy[\s\S]{0,50}@Autowired/'
65
- languages: [java]
66
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无循环依赖命中)"]
67
- gate: verify-gate
68
- target: "self"
69
- - id: ARC-08
70
- executor: regex_pattern_scan
71
- rule: "Service 层禁止直接操作 HttpServletRequest/Response"
154
+ required_artifact: 架构设计模版
155
+ evidence_required: ["数据库设计文档模版", "API接口规格文档模版"]
156
+ gate: design-gate
157
+ target: self
158
+ # —— 引用/附件完整性由 handleVerify 系统校验(从 contract produces 的 references/companion_files 派生,所有域所有产物自动全覆盖,不再单点 check)——
159
+ # —— 附件校验(openapi.yaml,external_command redocly lint)——
160
+ - id: OPENAPI-LINT
161
+ executor: external_command
162
+ command: npx
163
+ args: ["@redocly/cli", "lint", "--config", "redocly.yaml", "docs/api/openapi.yaml"]
164
+ rule: "openapi.yaml 须通过 redocly lint --config redocly.yaml(SoloForge 锁定规则;YAML 语法+OpenAPI 规范;缺文件/无 redocly 判失败)"
165
+ severity: warning
166
+ check_type: deterministic
167
+ evidence_required: ["redocly lint 输出(exitCode 0 通过)"]
168
+ gate: design-gate
169
+ target: self
170
+ # —— 字段映射校验(数据库 §3/§7 ↔ schema.sql 真实字段,确定性)——
171
+ - id: FMAP-DB-SCHEMA
172
+ executor: field_mapping_validation
173
+ rule: "表.字段 一致性+覆盖率"
174
+ severity: error
175
+ check_type: deterministic
176
+ required_artifact: 数据库设计文档模版
177
+ evidence_required: ["docs/design/schema.sql"]
178
+ gate: design-gate
179
+ target: self
180
+ - id: SLICE-BLOCK
181
+ executor: document_structure
182
+ check_type: deterministic
183
+ severity: error
184
+ gate: design-gate
185
+ required_artifact: 切片计划模版
186
+ rule: "每个 SLC 块须含涉及 ARCH / AC 验收标准 且有字段表格(反退化:禁前详后废/同上占位)"
187
+ block_check:
188
+ item_pattern: '^###\s+SLC-'
189
+ required_marks: ['涉及 ARCH', 'AC-']
190
+ require_table: true
191
+ min_table_rows: 5
192
+ evidence_required: ["docs/architecture/02-开发切片计划.md"]
193
+ target: self
194
+ - id: SLICE-DIMENSION
195
+ executor: slice_verifiability_check
196
+ check_type: deterministic
72
197
  severity: error
198
+ gate: design-gate
199
+ required_artifact: 切片计划模版
200
+ rule: "切片维度硬约束:① 骨架/基础设施切片 ≤ 2(防按端/技术层横切——切片须垂直端到端业务价值 前端→后端→DB,基础设施只占 1~2 例外切片,不得每端/每层一个骨架);② 每切片验收契约完整(可独立验证/验收范围/部署要求/E2E验证项,无通配占位)"
201
+ evidence_required: ["docs/architecture/02-开发切片计划.md"]
202
+ target: self
203
+ - id: DB-BLOCK
204
+ executor: document_structure
205
+ check_type: deterministic
206
+ severity: error
207
+ gate: design-gate
208
+ required_artifact: 数据库设计文档模版
209
+ rule: "数据库必填表格章节(实体/表字段/约束索引/Migration/API映射/SQL证据)须有表格行(反退化:禁空表/文字代替)"
210
+ block_check:
211
+ item_pattern: '^##\s+(1|2|3|4|6|7|8)\.'
212
+ require_table: true
213
+ min_table_rows: 1
214
+ evidence_required: ["docs/design/01-数据库设计文档.md"]
215
+ target: self
216
+ - id: REQ-BLOCK
217
+ executor: document_structure
218
+ check_type: deterministic
219
+ severity: error
220
+ gate: design-gate
221
+ required_artifact: 需求分析模版
222
+ rule: "需求必填表格章节(功能点/NFR/角色/外部接口/系统形态端清单等)须有表格行(反退化:禁空表/示例行后省略)"
223
+ block_check:
224
+ item_pattern: '^##\s+[2-9]\.'
225
+ require_table: true
226
+ min_table_rows: 1
227
+ evidence_required: ["docs/context/需求分析.md"]
228
+ target: self
229
+ # —— 系统形态研讨兜底(REQ-DELIB:涉及前端时强制 deliberate 研讨系统形态并留痕;纯后端跳过)——
230
+ - id: REQ-DELIB
231
+ executor: requirement_deliberation_gate
73
232
  check_type: deterministic
74
- pattern: '/\bHttpServletRequest\b|\bHttpServletResponse\b/'
75
- languages: [java]
76
- evidence_required: ["regex_pattern_scan 扫描结果(git diff 变更文件无 Service 操作 HttpServlet 命中)"]
77
- gate: verify-gate
78
- target: "self"
79
- - id: DES-C-REVIEW
80
- executor: semantic
81
- rule: "客户端 AI 评判设计主观规则(流程约束类,不可代码确定性判定):① 每条架构决策须有对应 ADR,禁止口头决策不留记录(ADR-HARD-01)② ADR 状态变更须经用户确认,Agent 不得自动变更(ADR-HARD-02)③ 跳过决策研讨须用户明确声明,Agent 不得自行跳过(ADR-HARD-04)④ 技术选型须有 NFR 量化对比而非仅凭业界主流(ARCH-MOD-04)"
82
- severity: info
83
- check_type: semantic
84
- evidence_required: ["LLM 语义评估结论(pending 标记,advisory 不阻断,随 Reflexion 反馈供客户端 AI 评判/重试)"]
85
- gate: design-gate
86
- target: "self"
233
+ severity: error
234
+ gate: design-gate
235
+ required_artifact: 需求分析模版
236
+ rule: "涉及前端(§9 形态含前后端分离/多端/纯前端,或端清单非空)时,须先 sf_work action=deliberate domain=design target=requirement_analysis 研讨系统形态并留痕研讨记录(docs/研讨记录/设计/需求分析-研讨记录.md);纯后端跳过"
237
+ evidence_required: ["docs/研讨记录/设计/需求分析-研讨记录.md"]
238
+ target: self
239
+ - id: ARCH-BLOCK
240
+ executor: document_structure
241
+ check_type: deterministic
242
+ severity: error
243
+ gate: design-gate
244
+ required_artifact: 架构设计模版
245
+ rule: "架构必填表格章节(需求概要/约束/技术选型/风险/横切)须有表格行(反退化:禁其余同上/一句话代替)"
246
+ block_check:
247
+ item_pattern: '^##\s+(2|3|7|10|11)\.'
248
+ require_table: true
249
+ min_table_rows: 1
250
+ evidence_required: ["docs/architecture/01-架构设计文档.md"]
251
+ target: self
87
252
  ---
88
253
 
89
254
  # design-gate 强制检查清单
90
255
 
91
- 8 条确定性检查。bridge 从此文件聚合。
256
+ design 阶段产物结构与决策质量检查。bridge 从此文件聚合。
257
+
258
+ - **REQ-STRUCT / ARCH-STRUCT / DB-STRUCT / API-STRUCT**:产物必含章节(document_structure,确定性;ARCH-STRUCT 含「架构决策记录 ADR」章节——决策留痕+选型依据)
259
+ - 设计主观纪律(选型变更须经用户确认 / 改老系统须兼容性分析)→ 软下限《设计决策纪律》guidance 注入(原 DES-C-REVIEW semantic 拆出)
92
260
 
93
- 对应工程经验:
94
- - ARC-01
95
- - ARC-02
96
- - ARC-03
97
- - ARC-04
98
- - ARC-06
99
- - ARC-07
100
- - ARC-08
101
- - DES-C-REVIEW
261
+ > 代码层正则检查(Controller 不含业务逻辑、写操作须事务等 ARC-*)已迁至 build-gate,那里才是代码实现阶段的归属。
@@ -5,13 +5,13 @@ title: 全生命周期工作流导航
5
5
  sync_policy: internal
6
6
  status: active
7
7
  triggers:
8
- - 下一步
9
- - 继续
10
8
  - 现在能写代码吗
11
9
  - 工作流导航
12
10
  - navigation
13
11
  - 阶段判断
14
12
  - 工作包生成
13
+ - 项目阶段
14
+ - 生命周期
15
15
  extra:
16
16
  name: full-lifecycle-navigation
17
17
  type: procedure
@@ -21,6 +21,7 @@ extra:
21
21
  products:
22
22
  - '*'
23
23
  lifecycle_status: active
24
+ priority: P0
24
25
  version: 1.1.0
25
26
  last_reviewed: '2026-06-01'
26
27
  domain:
@@ -56,6 +57,8 @@ extra:
56
57
 
57
58
  1. 输入材料收集 → 2. 需求明确化 → 3. 决策研讨 → 4. 架构设计 → 5. 详细设计 → 6. 数据库设计 → 7. API 设计 → 8. 切片规划 → 9. 编码实现 → 10. 本地验证 → 11. 测试 → 12. 代码审查 → 13. 修复复验 → 14. 交付验收 → 15. 发布准备 → 16. 发布后观察
58
59
 
60
+ > 步骤 2「需求明确化」含**系统形态研讨**:确定是否前后端分离、几个端、各端技术栈,结论写进需求 §9(涉及前端时强制研讨留痕,REQ-DELIB 兜底;下游架构 §6.3 据端清单 FE-* 模块化前端)。
61
+
59
62
  ## 导航决策流程
60
63
 
61
64
  1. 调用 `sf_task action=query` 或 `sf_task action=query` 获取当前状态
@@ -0,0 +1,71 @@
1
+ ---
2
+ id: ka-guidance-兼容性与迁移评估
3
+ kind: guidance
4
+ title: 兼容性与迁移评估
5
+ sync_policy: copy_to_project
6
+ status: active
7
+ triggers:
8
+ - 迁移
9
+ - 兼容
10
+ - 老系统
11
+ - 重构
12
+ - brownfield
13
+ - 改造
14
+ - 遗留
15
+ - 升级
16
+ - 数据迁移
17
+ - 兼容性
18
+ extra:
19
+ name: compatibility-migration-assessment
20
+ scope:
21
+ - '*'
22
+ products:
23
+ - '*'
24
+ type: procedure
25
+ lifecycle_status: active
26
+ version: 1.0.0
27
+ last_reviewed: '2026-06-17'
28
+ verification_layer: L2
29
+ stage: design
30
+ domain: design
31
+ owner_mechanism: mc-existing-system-analysis
32
+ ---
33
+
34
+ # 兼容性与迁移评估:改老系统怎么不翻车
35
+
36
+ > 吸收旧的「兼容性检查」「迁移评估」「改造影响范围评估」「历史遗留雷区清单」。
37
+ > **何时用**:改造现有系统、数据迁移、schema 变更、技术栈升级时。
38
+
39
+ ## 第一步:摸清现状(证据先行)
40
+
41
+ - 现有系统行为:靠真实运行/日志/数据证明,不靠记忆猜测([[证据驱动与反幻觉]])
42
+ - 历史遗留雷区:标出脆弱点、无人敢动的代码、隐式契约
43
+
44
+ ## 第二步:迁移范围与影响面
45
+
46
+ | 变更项 | 影响模块 | 影响数据 | 调用方 | 兼容性风险 |
47
+ |--------|---------|---------|--------|-----------|
48
+
49
+ ## 第三步:兼容性分析
50
+
51
+ - **向后兼容**:老接口/数据/调用方是否还能用?破坏点在哪?
52
+ - **数据兼容**:老数据能否被新代码正确读取?是否需要迁移脚本?
53
+ - **灰度能力**:能否新老并存、按流量/租户灰度切换?
54
+
55
+ ## 第四步:回滚方案(必填)
56
+
57
+ - 每个变更能否独立回滚?
58
+ - 数据迁移是否可逆?回滚后数据一致性如何保证?
59
+ - 回滚触发条件 + 验证 SQL
60
+
61
+ ## 第五步:风险与验证
62
+
63
+ - 新老逻辑比对:关键路径行为是否一致(比对日志/双写比对)
64
+ - 爆炸半径控制:小切片推进([[切片规划]]),每片可独立回滚
65
+
66
+ ## 禁止
67
+
68
+ - 不摸现状就改老代码(凭记忆,违规)
69
+ - 破坏向后兼容却不标注影响面(违规)
70
+ - 数据迁移没有回滚脚本(违规)
71
+ - 大爆炸式改造(无灰度,违规)
@@ -0,0 +1,70 @@
1
+ ---
2
+ id: ka-guidance-决策与选型
3
+ kind: guidance
4
+ title: 决策与选型
5
+ sync_policy: copy_to_project
6
+ status: active
7
+ triggers:
8
+ - 选型
9
+ - 技术决策
10
+ - ADR
11
+ - 头脑风暴
12
+ - 方案对比
13
+ - 第一性原理
14
+ - 架构决策
15
+ - 候选方案
16
+ - 技术栈
17
+ - 权衡
18
+ extra:
19
+ name: decision-and-selection
20
+ scope:
21
+ - '*'
22
+ products:
23
+ - '*'
24
+ type: procedure
25
+ lifecycle_status: active
26
+ version: 1.0.0
27
+ last_reviewed: '2026-06-17'
28
+ verification_layer: L2
29
+ stage: design
30
+ domain: design
31
+ owner_mechanism: mc-decision-workshop
32
+ ---
33
+
34
+ # 决策与选型:怎么拍技术方案
35
+
36
+ > 吸收旧的「技术选型」「自主选型」「架构决策记录」「不确定时头脑风暴」「第一性原理推理」。
37
+ > **核心**:重大决策须经用户确认([[开发者宪法]]),选型须有依据而非凭主流([[证据驱动与反幻觉]])。
38
+
39
+ ## 选型流程
40
+
41
+ 1. **明确要解决什么问题**(第一性原理,不跟风)
42
+ 2. **检索基准**:通用知识 + 项目沉淀(sf_knowledge)+ 业界实践
43
+ 3. **列候选方案**:至少 2 个(含"不做/保持现状"选项)
44
+ 4. **多维对比**:性能 / 成本 / 团队熟悉度 / 生态 / 运维 / 风险
45
+ 5. **证伪循环**:主动找每个候选的失败场景,不是只找优点
46
+ 6. **给推荐 + 风险**:列冲突点、给推荐、请求用户确认
47
+ 7. **落 ADR**:决策必须有记录(标题/背景/选项/结论/原因)
48
+
49
+ ## ADR 格式(MADR)
50
+
51
+ ```markdown
52
+ # 决策标题:<一句话>
53
+ ## 背景:为什么要做这个决策
54
+ ## 选项:列出候选及各自权衡
55
+ ## 结论:选了什么
56
+ ## 原因:为什么选它、放弃了什么
57
+ ```
58
+
59
+ ## 何时头脑风暴(不确定时)
60
+
61
+ - 需求/方案有多种合理解读,且影响重大
62
+ - 列出多个方向,标注各自前提和风险
63
+ - 不要假装确定([[工程执行总纲]] 思考先行)
64
+
65
+ ## 禁止
66
+
67
+ - "业界主流所以选它"(无依据,违规)
68
+ - 只列一个候选(没有比较,违规)
69
+ - 决策不留 ADR(口头决策,违规)
70
+ - 未经用户确认就定重大架构选型(越权,违规)
@@ -1,76 +1,72 @@
1
1
  ---
2
- id: 切片规划
2
+ id: ka-guidance-切片规划
3
3
  kind: guidance
4
4
  title: 切片规划
5
5
  sync_policy: copy_to_project
6
6
  status: active
7
7
  triggers:
8
- - 切片规划
9
- - 切片计划
10
- - slice planning
11
- - 任务拆分
12
- - 功能拆分
8
+ - 大任务
9
+ - 拆分
10
+ - 切片
11
+ - slice
12
+ - 任务拆解
13
+ - 并行开发
14
+ - 迭代
15
+ - 里程碑
16
+ - 增量
17
+ - 排期
13
18
  extra:
14
19
  name: slice-planning
15
- type: constraint
16
- domain: design
17
- lifecycle_status: active
18
20
  scope:
19
- - backend
20
- - frontend
21
+ - '*'
21
22
  products:
22
23
  - '*'
24
+ type: procedure
25
+ lifecycle_status: active
26
+ version: 1.0.0
27
+ last_reviewed: '2026-06-17'
23
28
  verification_layer: L2
24
29
  stage: design
25
- owner_mechanism: mc-command-router
30
+ domain: design
31
+ owner_mechanism: mc-design-artifact-pack
26
32
  ---
27
33
 
28
- # 切片规划规则
34
+ # 切片规划:大任务怎么拆
35
+
36
+ > 吸收旧的「切片规划」「切片计划」「任务拆解」「老系统切片规划」。
37
+ > **何时用**:任务超出单次交付、需多人/多轮并行、或改老系统需控制爆炸半径时。小任务不用拆。
38
+
39
+ ## 切片原则
40
+
41
+ 1. **垂直切片优先**:每个切片端到端打通一个可验价值(前端→后端→DB),不按技术层横切
42
+ 2. **独立可验证**:每个切片能单独跑、单独测、单独验收
43
+ 3. **主链路接入**:每个切片必须接入主链路,不留孤岛([[证据驱动与反幻觉]] 第 7 条)
44
+ 4. **依赖有序**:被依赖的切片先做;循环依赖必须打破
45
+ 5. **爆炸半径可控**(改老系统):每个切片可独立回滚,不牵连全局
46
+
47
+ > **硬约束(design-gate SLICE-DIMENSION 兜底)**:骨架/基础设施切片 ≤ 2(超过 design verify 拦截)。多端项目合并为一个「全端骨架 + DB」切片,不每端一个骨架;其余切片必须垂直(端到端业务 前端→后端→DB)——否则 slice-gate 浏览器验证空转(骨架无业务可验)。
48
+
49
+ ## 切片清单格式
50
+
51
+ | 切片ID | 目标 | 涉及模块 | 上游依赖 | 主链路入口 | 验收标准 | 预估 |
52
+ |--------|------|---------|---------|-----------|---------|------|
53
+ | S-01 | <!-- 可验价值 --> | | | | | |
29
54
 
30
- ## SLP-01: 最小闭环
31
- id: SLP-01
32
- name: 最小闭环
33
- severity: error
34
- check_type: semantic
35
- check_hint: 切片 AC 不得引用其他切片的输出作为前置条件
36
- description: 每个切片必须能独立完成并验证,不依赖后续切片的产出。AC 中引用的输入必须是上游设计产物(DD-*/ARCH-*),而非同层级其他切片的输出。
55
+ ## 每个切片必须回答
37
56
 
38
- ## SLP-02: 可独立测试
39
- id: SLP-02
40
- name: 可独立测试
41
- severity: error
42
- check_type: semantic
43
- check_hint: 每个切片的测试文件可独立执行,不需要等待其他切片完成
44
- description: 切片完成后必须能独立运行测试验证。若需其他切片的数据,须通过 fixture/mock 提供,不得依赖真实执行顺序。
57
+ - 这个切片交付什么可验证价值?
58
+ - 接入哪个主链路入口?(不接入=孤岛)
59
+ - 验收标准是什么(可执行验证,非"功能正常")?
60
+ - 失败怎么回滚?
45
61
 
46
- ## SLP-03: 单一职责
47
- id: SLP-03
48
- name: 单一职责
49
- severity: warning
50
- check_type: semantic
51
- check_hint: 切片描述≤2 个功能点
52
- description: 每个切片只聚焦一个功能点或一个变更维度。描述超过 2 个功能点的切片应拆分。复合切片须用前置依赖字段关联。
62
+ ## 老系统切片额外要求
53
63
 
54
- ## SLP-04: 上游引用完备
55
- id: SLP-04
56
- name: 上游引用完备
57
- severity: error
58
- check_type: deterministic
59
- check_hint: 每个切片的上游引用字段包含 DD-* 和 ARCH-* 编号
60
- description: 每个切片必须引用详细设计文档中的 DD-* 编号(接口/模块)和架构设计文档中的 ARCH-* 编号(架构决策)。无上游设计引用的切片不得进入执行阶段。
64
+ - 先标出历史遗留雷区([[兼容性与迁移评估]])
65
+ - 优先隔离适配器方案,不改老代码内部
66
+ - 每切片新老逻辑比对(行为一致才算通过)
61
67
 
62
- ## SLP-05: 验收标准三路径
63
- id: SLP-05
64
- name: 验收标准三路径
65
- severity: error
66
- check_type: deterministic
67
- check_hint: 每个切片≥3 条 AC,覆盖功能/质量/边界三路径
68
- description: 每个切片必须有 AC-* 验收标准,至少包含:功能验收(核心功能点的预期行为)、质量验收(测试覆盖率、无 lint 错误)、边界验收(边界条件和错误处理)。
68
+ ## 反规避
69
69
 
70
- ## SLP-06: ID 命名规范
71
- id: SLP-06
72
- name: ID 命名规范
73
- severity: error
74
- check_type: deterministic
75
- check_hint: 切片 ID 格式 SLC-{模块简称}-{序号},AC ID 格式 AC-SLC-{模块}-{序号}-{N}
76
- description: 任务 ID 格式:`SLC-{模块简称}-{序号}`(如 SLC-Auth-01)。验收标准 ID 格式:`AC-{任务ID}-{序号}`(如 AC-SLC-Auth-01-01)。依赖声明使用任务 ID,不允许使用描述性文字。ID 不得重复或缺失。
70
+ - 拆成技术层(前端一切、后端一切)= 横切,违规
71
+ - 切片不接入主链路 = 孤岛,违规
72
+ - 切片没有验收标准 = 无法验证,违规