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
@@ -0,0 +1,75 @@
1
+ ---
2
+ id: ka-artifact-开发切片计划
3
+ kind: artifact
4
+ title: 开发切片计划
5
+ sync_policy: copy_to_project
6
+ status: active
7
+ extra:
8
+ name: development-slice-plan
9
+ scope:
10
+ - '*'
11
+ products:
12
+ - '*'
13
+ lifecycle_status: active
14
+ version: 1.0.0
15
+ type: artifact_template
16
+ domain: design
17
+ owner_mechanism: mc-generic-artifact
18
+ ---
19
+
20
+ # 开发切片计划
21
+
22
+ > **产物定位**:design 域最后产出(架构设计完成后),把项目拆成可独立开发、独立验证的切片。
23
+ > **核心纪律**:每个切片须引用架构 ARCH-* / DD-* / FE-*(承接设计),声明 AC-* 验收标准(可独立验证)。
24
+ > **反退化纪律**:每个 `SLC-*` 必须完整重复其字段表格(目标/涉及 ARCH-*/涉及 DD-*/涉及 FE-*/变更文件/上游依赖/主链路入口/AC-* 验收标准/预估),禁止退化——
25
+ > - 禁止「前详后废」(前几个切片完整、后面的退化成一行文字或省略字段)
26
+ > - 禁止「(同上格式)」「见上文」「…」等偷懒占位(模板自身曾以此示范,已纠正)
27
+ > - 字段表格不得用一行文字代替
28
+ > 任一切片字段表不完整 = 未完成。
29
+ > **下游**:build 域按切片顺序编码,每切片完成跑 slice-gate(docker 构建/部署/HTTP/E2E)。
30
+
31
+ ## PHASE-* 阶段划分
32
+
33
+ | PHASE | 目标 | 包含切片 | 前置依赖 |
34
+ |-------|------|----------|----------|
35
+ | PHASE-1 | (如:核心链路打通) | SLC-01~SLC-03 | 无 |
36
+ | PHASE-2 | (如:扩展功能) | SLC-04~SLC-06 | PHASE-1 |
37
+
38
+ ## SLC-* 切片清单
39
+
40
+ ### SLC-01 切片名称
41
+
42
+ | 字段 | 内容 |
43
+ |------|------|
44
+ | 目标 | 本切片完成什么(一句话) |
45
+ | 涉及 ARCH-* | 引用的架构模块 ID(如 ARCH-01/ARCH-03) |
46
+ | 涉及 DD-* | 引用的设计产物 ID(如 DD-A01/DD-T02) |
47
+ | 涉及 FE-* | 引用的前端端 ID(如 FE-client-01),纯后端切片填"无" |
48
+ | 变更文件 | 本切片涉及的文件清单(预估) |
49
+ | 上游依赖 | 前置切片(如无填"无") |
50
+ | 主链路入口 | 本切片验证的入口(如 POST /api/v1/users) |
51
+ | AC-* 验收标准 | 切片完成的可验证条件(至少 1 条) |
52
+ | 预估 | 复杂度(S/M/L) |
53
+
54
+ ### SLC-02 切片名称
55
+
56
+ | 字段 | 内容 |
57
+ |------|------|
58
+ | 目标 | 本切片完成什么(一句话) |
59
+ | 涉及 ARCH-* | 引用的架构模块 ID |
60
+ | 涉及 DD-* | 引用的设计产物 ID |
61
+ | 涉及 FE-* | 引用的前端端 ID(如 FE-admin-01),纯后端切片填"无" |
62
+ | 变更文件 | 本切片涉及的文件清单 |
63
+ | 上游依赖 | 前置切片(如无填"无") |
64
+ | 主链路入口 | 本切片验证的入口 |
65
+ | AC-* 验收标准 | 切片完成的可验证条件(至少 1 条) |
66
+ | 预估 | 复杂度(S/M/L) |
67
+
68
+ ## 完成判定
69
+
70
+ - [ ] 每个 SLC 引用至少 1 个 ARCH-* 或 DD-*(承接设计)
71
+ - [ ] 每个 SLC 声明至少 1 个 AC-* 验收标准(可独立验证)
72
+ - [ ] 所有架构模块(ARCH-*)被至少 1 个 SLC 覆盖(XVAL-SLC 校验)
73
+ - [ ] 所有前端端模块(FE-*)被至少 1 个骨架 SLC 覆盖(XVAL-SLC 校验 ARCH-*/FE-*;前端骨架切片含路由/状态/API service 壳)
74
+ - [ ] 切片粒度可独立 docker 部署 + 浏览器验证(slice-gate 可执行)
75
+ - [ ] 每个 SLC 字段表格完整(无偷懒占位、无一字段降级为文字)
@@ -11,8 +11,8 @@ extra:
11
11
  - backend
12
12
  products:
13
13
  - '*'
14
- version: 1.2.0
15
- last_reviewed: '2026-06-04'
14
+ version: 2.0.0
15
+ last_reviewed: '2026-06-17'
16
16
  type: artifact
17
17
  domain: design
18
18
  stage: design
@@ -21,9 +21,14 @@ extra:
21
21
 
22
22
  # 数据库设计文档
23
23
 
24
- > **根本目标引用**:本产物的 `fundamental_need` 见需求分析文档 §1.3。若未声明,引用审查规则 FP-01。
24
+ > **产物定位**:涉及数据模型/建表时产出(按需)。把表结构、关系、敏感级别、迁移回滚定清楚。
25
+ > **核心纪律**:字段映射精确到 表.字段;migration 成对(up+down)可回滚([[兼容性与迁移评估]])。
26
+ > **反退化纪律**:标 `[Always]` 的表格(实体列表/表字段/约束索引/API映射/SQL证据等)必须逐条填充,禁止空表、禁止用一行文字代替表格、禁止「…」占位;表多时每张表都填全字段,不得「其余表同上」。
27
+ > **完成判定**:见文末。
25
28
 
26
- ## 1. 目标数据库与权威 SQL [Always — 必填]
29
+ > **根本目标引用**:本产物的 `fundamental_need` 见需求分析文档 §1.3。
30
+
31
+ ## 1. 目标数据库与权威 SQL [Always]
27
32
 
28
33
  | 项目 | 内容 |
29
34
  |------|------|
@@ -35,119 +40,102 @@ extra:
35
40
  | 上游架构文档路径 | |
36
41
  | 上游需求文档路径 | |
37
42
 
38
- ## 2. 实体与关系 [Always — 必填,P0 最关键章节]
43
+ ## 2. 实体与关系 [Always — P0 最关键]
39
44
 
40
45
  ### 2.1 实体列表
41
- > 每个表须分配唯一表编号 `DD-T01`/`DD-T02`...(供切片计划/代码审查引用,cross_validation 据此校验一致性+覆盖)
42
- > 「来源需求/架构章节」列须填 `REQ-*`(需求编号)/`ARCH-*`(架构决策)真实编号(供 cross_validation 校验与需求分析一致),禁止仅写自然语言描述
46
+ > 每个表分配唯一编号 `DD-T01`/`DD-T02`...(供切片/审查引用)
47
+ > 「来源需求/架构章节」填 `REQ-*`/`ARCH-*` 真实编号
43
48
 
44
49
  | 表编号 | 实体名 | 中文名 | 业务含义 | 来源需求/架构章节 | 估计记录量级 |
45
50
  |--------|--------|--------|----------|-------------------|-------------|
46
- | DD-T01 | <!-- 实体名 --> | <!-- 中文名 --> | <!-- 业务含义 --> | <!-- REQ-001/ARCH-01 --> | <!-- 量级 --> |
47
51
 
48
52
  ### 2.2 关系定义
49
53
  | 关系编号 | 父实体 | 子实体 | 关系类型 | 基数 | 外键字段 | 级联行为 | 说明 |
50
54
  |----------|--------|--------|----------|------|----------|----------|------|
51
- <!-- 按实际填写 -->
52
- 关系类型枚举:关联 / 组合 / 聚合
53
- 基数枚举:1:1 / 1:N / M:N
55
+
56
+ 关系类型:关联 / 组合 / 聚合;基数:1:1 / 1:N / M:N
54
57
 
55
58
  ### 2.3 ER 图
56
- > 推荐 Mermaid erDiagram 语法
59
+ > 推荐 Mermaid erDiagram
57
60
 
58
61
  ## 3. 表字段与敏感级别
59
62
 
60
63
  | 表 | 字段 | 类型 | 可空 | 默认值 | 业务含义 | 敏感级别 | 生命周期 |
61
64
  |----|------|------|------|--------|----------|----------|----------|
62
65
 
63
- ## 4. 约束、索引与查询场景 [Always — 必填]
66
+ ## 4. 约束、索引与查询场景 [Always]
64
67
 
65
68
  ### 4.1 约束定义
66
69
  | 表名 | 约束名 | 约束类型 | 约束字段 | 约束条件 | 错误提示 |
67
70
  |------|--------|----------|----------|----------|----------|
68
- <!-- 按实际填写 -->
69
- 约束类型枚举:PRIMARY KEY / UNIQUE / FOREIGN KEY / CHECK / NOT NULL / DEFAULT
71
+
72
+ 约束类型:PRIMARY KEY / UNIQUE / FOREIGN KEY / CHECK / NOT NULL / DEFAULT
70
73
 
71
74
  ### 4.2 索引定义
72
75
  | 表名 | 索引名 | 索引类型 | 字段列表 | 查询场景 | 创建理由 | 预估基数 |
73
76
  |------|--------|----------|----------|----------|----------|----------|
74
- <!-- 按实际填写 -->
75
- 索引类型枚举:PRIMARY / UNIQUE / BTREE / HASH / GIN / GIST / COMPOSITE / PARTIAL
76
77
 
77
78
  ### 4.3 高频查询场景
78
79
  | 查询编号 | 查询场景 | 涉及表 | 查询条件 | 排序/分页 | 优化策略 |
79
80
  |----------|----------|--------|----------|-----------|----------|
80
- <!-- 按实际填写 -->
81
81
 
82
- ## 5. 租户、安全、审计与数据生命周期 [Ask first — 多租户/敏感数据场景必填]
82
+ ## 5. 租户、安全、审计与数据生命周期 [多租户/敏感数据时必填]
83
83
 
84
84
  ### 5.1 租户隔离策略
85
85
  | 表名 | 隔离方式 | 租户字段 | 隔离级别 | 说明 |
86
86
  |------|----------|----------|----------|------|
87
- <!-- 按实际填写 -->
88
87
 
89
88
  ### 5.2 敏感数据保护
90
89
  | 字段路径 | 敏感级别 | 加密方式 | 脱敏规则 | 访问控制 | 合规要求 |
91
90
  |----------|----------|----------|----------|----------|----------|
92
- <!-- 按实际填写 -->
93
91
 
94
92
  ### 5.3 审计字段
95
93
  | 表名 | 创建时间字段 | 更新时间字段 | 创建人字段 | 更新人字段 | 软删除字段 |
96
94
  |------|-------------|-------------|-----------|-----------|-----------|
97
- <!-- 按实际填写 -->
98
95
 
99
96
  ### 5.4 数据生命周期
100
97
  | 数据类型 | 保留期限 | 归档策略 | 清理策略 | 合规依据 |
101
98
  |----------|----------|----------|----------|----------|
102
- <!-- 按实际填写 -->
103
99
 
104
- ## 6. Migration、回滚、备份恢复 [Always — 必填]
100
+ ## 6. Migration、回滚、备份恢复 [Always]
105
101
 
106
102
  ### 6.1 Migration 脚本清单
107
103
  | 序号 | Migration 文件名 | 变更类型 | 涉及表 | 前置依赖 | 回滚脚本 |
108
104
  |------|-----------------|----------|--------|----------|----------|
109
- <!-- 按实际填写 -->
110
- 变更类型枚举:CREATE_TABLE / ALTER_TABLE / ADD_COLUMN / DROP_COLUMN / ADD_INDEX / DATA_MIGRATION
105
+
106
+ 变更类型:CREATE_TABLE / ALTER_TABLE / ADD_COLUMN / DROP_COLUMN / ADD_INDEX / DATA_MIGRATION
111
107
 
112
108
  ### 6.2 回滚验证
113
109
  | Migration | 回滚命令 | 回滚验证 SQL | 预期结果 |
114
110
  |-----------|----------|-------------|----------|
115
- <!-- 按实际填写 -->
116
111
 
117
112
  ### 6.3 数据备份策略
118
113
  | 场景 | 备份方式 | 备份频率 | 恢复 RTO | 恢复 RPO |
119
114
  |------|----------|----------|----------|----------|
120
- <!-- 按实际填写 -->
121
115
 
122
- ## 7. API/DTO 至字段映射表 [Always — 必填]
116
+ ## 7. API/DTO 至字段映射表 [Always]
123
117
 
124
118
  | API Endpoint | HTTP Method | 请求字段 | 映射表.字段 | 响应字段 | 映射表.字段 | DTO 类名 |
125
119
  |--------------|-------------|----------|------------|----------|------------|----------|
126
- <!-- 按实际填写 -->
127
120
 
128
- > 每个 API 字段必须精确追踪到数据库表.字段,无映射的字段标注"计算字段"/"外部服务"/"缓存"。
121
+ > 每个 API 字段必须追踪到 表.字段,无映射的标注"计算字段"/"外部服务"/"缓存"。
129
122
 
130
- ## 8. 真实验证证据与未决项 [Always — 必填]
123
+ ## 8. 真实验证证据 [Always]
131
124
 
132
125
  ### 8.1 SQL 执行证据
133
126
  | 验证项 | 执行 SQL | 预期结果 | 实际结果 | 状态 |
134
127
  |--------|----------|----------|----------|------|
135
- <!-- 按实际填写 -->
136
128
 
137
129
  ### 8.2 范式自检
138
130
  | 表名 | 函数依赖 | 当前范式 | 是否满足 3NF | 修正建议 |
139
131
  |------|----------|----------|-------------|----------|
140
- <!-- 按实际填写 -->
141
-
142
- ### 8.3 字段映射覆盖自检
143
- | 检查项 | 覆盖状态 | 缺失说明 |
144
- |--------|----------|----------|
145
- | 所有 API 字段已追踪到数据库字段 | <!-- 是/否 --> | <!-- 按实际填写 --> |
146
- | 所有数据库字段已被至少一个 API 引用 | <!-- 是/否 --> | <!-- 按实际填写 --> |
147
- | 所有外键关系已在 Ch2 定义 | <!-- 是/否 --> | <!-- 按实际填写 --> |
148
- | 所有索引已在 Ch4 定义且覆盖高频查询 | <!-- 是/否 --> | <!-- 按实际填写 --> |
149
-
150
- ### 8.4 未决项
151
- | 编号 | 未决项 | 不确定分级 | 候选方案 | 状态 |
152
- |------|--------|-----------|----------|------|
153
- <!-- 按实际填写 -->
132
+
133
+ ## 完成判定
134
+
135
+ - [ ] 所有 API 字段已追踪到 表.字段
136
+ - [ ] 所有外键关系已在 §2 定义
137
+ - [ ] 所有索引已定义且覆盖高频查询
138
+ - [ ] migration 成对(up + down),回滚脚本已验证
139
+ - [ ] 敏感字段标注敏感级别 + 保护方式
140
+ - [ ] SQL 执行证据为真实运行结果(非静态分析)
141
+ - [ ] 标 [Always] 的表格均已逐条填充,无空表/无文字代替/无「其余同上」占位
@@ -12,8 +12,8 @@ extra:
12
12
  products:
13
13
  - '*'
14
14
  lifecycle_status: active
15
- version: 1.2.0
16
- last_reviewed: '2026-06-04'
15
+ version: 2.0.0
16
+ last_reviewed: '2026-06-17'
17
17
  type: artifact
18
18
  domain: design
19
19
  stage: design
@@ -22,34 +22,27 @@ extra:
22
22
 
23
23
  # 架构设计文档
24
24
 
25
- ## 1. 决策记录、范围与证据
26
- - 架构决策记录引用:`docs/architecture/00-架构决策记录.md`
27
- - 用户确认引用:
28
- - 输入证据引用:
29
-
30
- > **根本目标引用**:本产物的 `fundamental_need` 见需求分析文档 §1.3。若未声明,引用审查规则 FP-01。
25
+ > **产物定位**:架构阶段(4 阶段第 2 步)的产出。把"怎么做"想清楚,承接需求分析的 fundamental_need。
26
+ > **核心纪律**:每条架构决策须有 ADR 留痕([[开发者宪法]]),技术选型须有依据而非凭主流([[证据驱动与反幻觉]]),须考虑回滚/兼容/安全。
27
+ > **反退化纪律**:模块划分/技术选型/风险登记 等表格与列表必须逐条填写,禁止「其余模块同上」「…」省略、禁止用一句话代替表格行。
28
+ > **完成判定**:见文末。
31
29
 
32
- ## 2. 六类架构决策状态总表
33
-
34
- | 架构域 | 状态 | 结论 | decision_id | user_confirmation_ref | 影响产物 |
35
- |--------|------|------|-------------|-----------------------|----------|
30
+ ## 1. 决策记录与范围
31
+ - 架构决策记录:`docs/architecture/00-架构决策记录.md`
32
+ - 根本目标引用:需求分析 §1.3 `fundamental_need`
33
+ - 输入证据引用:
36
34
 
37
- ## 3. 需求概要
35
+ ## 2. 需求概要
38
36
 
39
- ### 3.1 系统角色与关注点
40
- | 角色 | 关注点 | 说明 |
41
- |------|--------|------|
37
+ > 填需求分析 §2 的**真实 REQ 编号**(如 REQ-001,非占位符 REQ-NNN)。design-gate cross_validation 校验架构↔需求的 REQ-* 一致性+覆盖率。
42
38
 
43
- ### 3.2 功能需求引用
44
- > 引用需求分析阶段的 REQ-* ID,附摘要
45
39
  | REQ-ID | 需求摘要 | 对应架构模块 |
46
40
  |--------|---------|-------------|
47
41
 
48
- ### 3.3 非功能需求清单
49
42
  | NFR-ID | 类别 | 指标 | 目标值 | 验证方式 |
50
43
  |--------|------|------|-------|---------|
51
44
 
52
- ## 3a. 约束条件
45
+ ## 3. 约束条件
53
46
  | 约束类型 | 描述 | 来源 | 影响范围 |
54
47
  |---------|------|------|---------|
55
48
  | 技术约束 | | | |
@@ -59,53 +52,38 @@ extra:
59
52
 
60
53
  ## 4. 模块划分
61
54
  - 模块清单与职责边界
62
- - 模块间依赖关系图
55
+ - 模块间依赖关系
63
56
  - 核心接口契约(模块间调用方式)
64
57
 
65
- ## 4a. 架构范式选择(可选)
66
-
67
- ### 参考范式清单
68
- | 范式 | 解决什么问题 | 典型适用场景 |
69
- |------|------------|------------|
70
- | DDD | 业务边界划分 | 业务领域复杂 |
71
- | Clean Architecture | 依赖方向控制 | 中大型系统 |
72
- | Hexagonal | 外部依赖隔离 | 多接入方式 |
73
- | Modular Monolith | 模块边界 | 不确定是否微服务 |
74
- | GRASP | 职责归属 | 代码组织混乱 |
75
- | SOLID | 代码质量 | 所有项目 |
76
- | ADR | 决策可追溯 | 所有中大型项目 |
77
-
78
- ### 本项目采用的范式
79
- | 范式 | 适用范围 | 关键约束 | 决策引用 |
80
- |------|---------|---------|---------|
81
- | (仅列出选择采用的) | | | |
82
-
83
- ### 偏差处理
84
- 选择的范式如需偏离,须在 Ch1 ADR 中记录偏离原因。
85
-
86
- ## 5. 业务流程、数据流向与关键 Mermaid 时序图
87
- - 主流程数据流向图
88
- - 关键数据结构定义
58
+ ## 5. 业务流程与数据流向
59
+ - 主流程数据流向图(Mermaid)
60
+ - 核心业务流程时序图(每个核心流程一张,请求入口→持久化→响应完整链路)
89
61
  - 数据存储方案(数据库/缓存/文件)
90
62
 
91
- ## 6. 前端、后端、安全与基础设施架构
63
+ ## 6. 架构组成
92
64
 
93
- ### 6.1 系统上下文(C4 Level 1
94
- - 系统边界与外部系统交互图
65
+ ### 6.1 系统上下文(C4 L1
66
+ - 系统边界与外部系统交互
95
67
  - 用户角色与接入方式
96
- - 外部依赖清单
97
68
 
98
- ### 6.2 后端架构(C4 Level 2-3)
69
+ ### 6.2 后端架构(C4 L2-3)
99
70
  - 服务拆分与职责
100
71
  - 核心接口契约
101
72
  - 数据存储方案
102
- - **核心业务流程系统实现时序图**(每个核心业务流程必须有一张 Mermaid sequenceDiagram,
103
- 展示从请求入口到持久化到响应的完整调用链)
104
73
 
105
- ### 6.3 前端架构(C4 Level 2-3)
74
+ ### 6.3 前端架构(C4 L2-3)
106
75
  - 应用结构与路由
107
76
  - 状态管理策略
108
- - 组件分层方案
77
+ - 组件分层
78
+
79
+ #### 端模块清单(承接需求 §9 系统形态,每端一个 FE-* 模块;无前端项目填「不适用」)
80
+
81
+ | 端 ID(FE-*) | 端名称 | 项目目录 | 技术栈 | 职责 | 对应需求 §9 端 |
82
+ |--------------|--------|---------|--------|------|--------------|
83
+ | FE-client-01 | | client-portal | | | |
84
+ | FE-shared | shared | shared | | 类型/API client/工具共享 | |
85
+
86
+ > 端 ID **单段**命名(FE-client-01/FE-admin-01,禁多段横杠 FE-client-portal-01)——承接校验正则约束。「项目目录」是 build 域工程目录(`根/{目录}/src/`),build scope 据此放行写入;后端工程目录固定 `backend/`(§6.2)。XVAL-SLC 校验每个 FE-* 被切片覆盖;纯后端项目填「不适用」。
109
87
 
110
88
  ### 6.4 安全架构
111
89
  - 认证与授权方案
@@ -113,17 +91,27 @@ extra:
113
91
  - 安全边界与信任域
114
92
 
115
93
  ### 6.5 基础设施与部署
116
- - 部署架构图
94
+ - 部署架构
117
95
  - 环境规划(开发/测试/预发/生产)
118
96
  - CI/CD 策略
119
- - 监控与告警方案
97
+ - 监控告警
120
98
 
121
99
  ## 7. 技术选型与依据
122
100
  | 技术决策 | 候选方案 | 最终选择 | 选择理由 | 放弃方案原因 |
123
101
  |---------|---------|---------|---------|------------|
124
- | | | | | |
125
102
 
126
- ## 8. 数据库与 API 专项产物引用
103
+ > 选型须有依据(性能/成本/团队熟悉度/生态),禁止"业界主流所以选它"。详见 [[决策与选型]]。
104
+
105
+ ## 8. 专项产物引用
106
+
107
+ **产物适用性声明**(必填,XVAL 按此判定 database_design / api_specification 是否需产出):
108
+ - 数据库设计文档:____ — 依据:...(填「适用」或「不适用」;不适用例:纯前端无后端持久化;适用则下方填引用)
109
+ - API接口规格文档:____ — 依据:...(填「适用」或「不适用」;不适用例:无对外 API / 纯内部模块;适用则下方填引用)
110
+
111
+ > 列出本架构涉及的接口/表真实编号(cross_validation 校验 DD-A*/DD-T* 跨文档一致+覆盖率):
112
+ > - 接口 ID(对应 API 规格):DD-A01、DD-A02 ...
113
+ > - 表 ID(对应数据库设计):DD-T01、DD-T02 ...
114
+
127
115
  - 数据库设计:`docs/design/01-数据库设计文档.md`
128
116
  - API 规格:`docs/design/02-API接口规格文档.md`
129
117
  - OpenAPI:`docs/api/openapi.yaml`
@@ -133,39 +121,33 @@ extra:
133
121
  - 核心业务状态流转
134
122
  - 触发条件、守卫条件、失败/回滚动作
135
123
 
136
- ## 10. 非功能需求、验证策略、风险与回滚
137
-
138
- ### 10.1 性能预算与质量目标
139
- | 类别 | 指标 | 目标值 | 测量方式 | 关联 ADR |
140
- |------|------|-------|---------|---------|
124
+ ## 10. 风险与回滚(必填)
141
125
 
142
- ### 10.2 风险登记
143
- | RISK-ID | 风险描述 | 概率 | 影响 | 应对方案 | 关联 ADR | 状态 |
144
- |---------|---------|------|------|---------|---------|------|
126
+ ### 10.1 风险登记
127
+ | RISK-ID | 风险描述 | 概率 | 影响 | 应对方案 | 关联 ADR |
128
+ |---------|---------|------|------|---------|---------|
145
129
 
146
- ### 10.3 回滚与灾难恢复
130
+ ### 10.2 回滚与灾难恢复
147
131
  | 场景 | RTO | RPO | 恢复策略 | 触发条件 |
148
132
  |------|-----|-----|---------|---------|
149
133
 
150
- ### 10.4 验证策略
151
- | NFR-ID | 验证方法 | 验证时机 | 通过标准 |
152
- |--------|---------|---------|---------|
134
+ > 任何上线变更必须有回滚方案([[开发者宪法]])。
153
135
 
154
- ## 11. 未决项、延期影响和变更追踪
155
-
156
- ## 12. 扩展点
157
- - 已识别的未来扩展方向
158
- - 预留的扩展机制(接口/配置/插件)
159
-
160
- ## 13. 跨横切关注点
136
+ ## 11. 跨横切关注点
161
137
  | 关注点 | 方案 | 影响模块 |
162
138
  |--------|------|---------|
163
139
  | 日志与审计 | | |
164
140
  | 错误处理 | | |
165
141
  | 缓存策略 | | |
166
- | 国际化/本地化 | | |
167
142
  | 配置管理 | | |
168
143
 
169
- ## 14. 术语表
170
- | 术语 | 定义 | 来源 |
171
- |------|------|------|
144
+ ## 完成判定
145
+
146
+ - [ ] 每条架构决策有对应 ADR,重大选型经用户确认
147
+ - [ ] 约束条件覆盖技术/组织/法规/预算
148
+ - [ ] 含安全架构(认证/授权/加密)
149
+ - [ ] 含风险登记 + 回滚方案(RTO/RPO)
150
+ - [ ] 跨横切关注点(日志/错误/缓存/配置)有方案
151
+ - [ ] 引用的数据库/API 专项产物路径有效
152
+ - [ ] §6.3 前端架构含端模块清单(FE-* ID,单段命名,承接需求 §9 端清单)
153
+ - [ ] 模块/选型/风险等表格逐条填写,无「其余同上」省略、无一句话代替
@@ -0,0 +1,58 @@
1
+ ---
2
+ id: ka-guidance-设计决策纪律
3
+ kind: guidance
4
+ title: 设计决策纪律
5
+ sync_policy: engine_only
6
+ status: active
7
+ triggers:
8
+ - 技术选型
9
+ - 决策记录
10
+ - 框架选型
11
+ - 中间件选型
12
+ - 数据库选型
13
+ - 改造
14
+ - 重构方案
15
+ - 选型变更
16
+ - 兼容性分析
17
+ - 回滚方案
18
+ extra:
19
+ name: design-decision-discipline
20
+ scope:
21
+ - '*'
22
+ products:
23
+ - '*'
24
+ type: constraint
25
+ lifecycle_status: active
26
+ version: 1.0.0
27
+ domain: design
28
+ owner_mechanism: mc-workflow-contract
29
+ ---
30
+
31
+ # 设计决策纪律
32
+
33
+ > **来源**:从 design-gate 的 `DES-C-REVIEW`(semantic advisory,不阻断)拆出的**主观 / 须人确认**部分。
34
+ > 确定性的(ADR 章节、选型依据)已并入 `ARCH-STRUCT` 硬检查;本文件承载**不可机器判定**的纪律——靠 triggers 注入 + AI/用户自觉。
35
+
36
+ ## 须用户确认(Agent 不得自动变更)
37
+
38
+ - **重大技术选型状态变更**(换框架 / 换数据库 / 换中间件 / 换部署形态)须经**用户确认**,Agent 不得自行变更
39
+ - 架构风格的根本性变更(如单体→微服务、同步→异步)须用户拍板
40
+ - 确认方式:在对话框明确告知变更影响,等用户确认后才写入 ADR
41
+
42
+ > 为何软:机器无法判定"是否经用户确认"(需对话记录)。靠本纪律提醒 Agent 主动确认。
43
+
44
+ ## 改老系统须兼容性分析(brownfield)
45
+
46
+ - 改造已有系统前,须产出**兼容性分析**:影响哪些现有功能 / 接口 / 数据 / 调用方
47
+ - 须有**回滚方案**:变更失败如何恢复(ARCH-STRUCT 的「风险与回滚」章节承载)
48
+ - 兼容性分析可写入架构设计文档或 [[兼容性与迁移评估]]
49
+
50
+ ## 决策方法论(选型依据)
51
+
52
+ - 技术选型须有**可证伪依据**:性能 / 成本 / 团队熟悉度 / 生态 / 已有架构约束
53
+ - **禁止**仅凭"业界主流 / 大厂在用"作唯一依据
54
+ - 每条决策在 ADR 记录:**上下文 → 候选方案 → 依据 → 结论**
55
+
56
+ ## 关联
57
+ - 确定性部分(ADR 章节存在)→ `ARCH-STRUCT` 硬检查
58
+ - [[决策与选型]](选型方法论)/ [[兼容性与迁移评估]](迁移分析)/ [[证据驱动与反幻觉]](依据可证伪)
@@ -0,0 +1,58 @@
1
+ ---
2
+ id: ka-guidance-设计质量要点
3
+ kind: guidance
4
+ title: 设计质量要点
5
+ sync_policy: engine_only
6
+ status: active
7
+ triggers:
8
+ - 非功能需求
9
+ - NFR
10
+ - 性能预算
11
+ - 可用性
12
+ - SLA
13
+ - 安全设计
14
+ - 威胁建模
15
+ - 权限模型
16
+ - 数据分类
17
+ - 设计质量
18
+ extra:
19
+ name: design-quality-essentials
20
+ scope:
21
+ - '*'
22
+ products:
23
+ - '*'
24
+ type: constraint
25
+ lifecycle_status: active
26
+ version: 1.0.0
27
+ domain: design
28
+ owner_mechanism: mc-stage-gate-engine
29
+ ---
30
+
31
+ # 设计质量要点
32
+
33
+ > **为什么是软规则**:`document_structure` 只查章节**存在**,不查**内容质量**。以下是要点内容质量(NFR 是否真量化、安全设计是否充分)——机器难确定性判,靠本 guidance 注入 + cross-artifact 对抗审查(用户方/攻击方/合规方)复核。强行硬判会假覆盖。
34
+
35
+ ## NFR 须量化(非功能需求要有可测量数值)
36
+
37
+ 禁止模糊表述,须有**具体数值**:
38
+ - 性能:响应 `< 3s`、QPS `>= 1000`、P99 `< 500ms`(非"快"/"高性能")
39
+ - 可用性:SLA `99.9%`、RTO `< 5min`、RPO `< 1min`
40
+ - 安全:加密算法(AES-256)、密码策略、会话超时
41
+ - 容量:用户数/数据量上限
42
+
43
+ **对抗审查用户方复核**:NFR 是否真量化(有数值);架构的 NFR 目标值是否与需求分析的 NFR 一致(避免需求 < 3s、架构写 < 5s 的漂移)。
44
+
45
+ ## 安全设计须有深度(不止"有章节")
46
+
47
+ `ARCH-STRUCT` 验证「安全架构」章节存在,但内容须覆盖:
48
+ - **威胁建模**:关键资产的威胁路径与缓解
49
+ - **权限模型**:认证/授权方案(RBAC/ABAC、数据权限)
50
+ - **数据分类**:敏感数据识别 + 加密/脱敏/传输保护
51
+ - **信任边界**:内外网边界、服务间信任、第三方接入
52
+
53
+ **对抗审查攻击方/合规方复核**:安全设计是否真覆盖上述(非空章节/泛泛而谈)。
54
+
55
+ ## 关联
56
+ - [[设计决策纪律]](决策须 ADR + 用户确认)
57
+ - [[证据驱动与反幻觉]](NFR/安全依据可证伪)
58
+ - cross-artifact 对抗审查:用户方(NFR 量化/一致)、攻击方(安全威胁)、合规方(安全规范)维度复核