soloforge 1.1.46 → 1.1.47

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 (342) hide show
  1. package/README.md +12 -0
  2. package/dist/context/adapters/shared/integration_guide.js +3 -1
  3. package/dist/context/adapters/shared/integration_guide.js.map +1 -1
  4. package/dist/core/gate_record_store.d.ts +11 -7
  5. package/dist/core/gate_record_store.d.ts.map +1 -1
  6. package/dist/core/gate_record_store.js +31 -17
  7. package/dist/core/gate_record_store.js.map +1 -1
  8. package/dist/core/observer.d.ts.map +1 -1
  9. package/dist/core/observer.js +7 -4
  10. package/dist/core/observer.js.map +1 -1
  11. package/dist/domain/asset_registry/derived_registry.d.ts.map +1 -1
  12. package/dist/domain/asset_registry/derived_registry.js +20 -5
  13. package/dist/domain/asset_registry/derived_registry.js.map +1 -1
  14. package/dist/domain/asset_registry/derived_types.d.ts +5 -1
  15. package/dist/domain/asset_registry/derived_types.d.ts.map +1 -1
  16. package/dist/domain/build/contract.d.ts.map +1 -1
  17. package/dist/domain/build/contract.js +3 -8
  18. package/dist/domain/build/contract.js.map +1 -1
  19. package/dist/domain/build/engine.d.ts +3 -2
  20. package/dist/domain/build/engine.d.ts.map +1 -1
  21. package/dist/domain/build/engine.js +5 -2
  22. package/dist/domain/build/engine.js.map +1 -1
  23. package/dist/domain/design/contract.d.ts.map +1 -1
  24. package/dist/domain/design/contract.js +2 -31
  25. package/dist/domain/design/contract.js.map +1 -1
  26. package/dist/domain/design/engine.d.ts +3 -2
  27. package/dist/domain/design/engine.d.ts.map +1 -1
  28. package/dist/domain/design/engine.js +5 -2
  29. package/dist/domain/design/engine.js.map +1 -1
  30. package/dist/domain/engine_helpers.d.ts +18 -2
  31. package/dist/domain/engine_helpers.d.ts.map +1 -1
  32. package/dist/domain/engine_helpers.js +87 -8
  33. package/dist/domain/engine_helpers.js.map +1 -1
  34. package/dist/domain/operate/contract.js +1 -1
  35. package/dist/domain/operate/contract.js.map +1 -1
  36. package/dist/domain/operate/engine.d.ts +3 -2
  37. package/dist/domain/operate/engine.d.ts.map +1 -1
  38. package/dist/domain/operate/engine.js +5 -2
  39. package/dist/domain/operate/engine.js.map +1 -1
  40. package/dist/domain/verify/engine.d.ts +3 -2
  41. package/dist/domain/verify/engine.d.ts.map +1 -1
  42. package/dist/domain/verify/engine.js +5 -2
  43. package/dist/domain/verify/engine.js.map +1 -1
  44. package/dist/gate/executors/executors_artifact.d.ts.map +1 -1
  45. package/dist/gate/executors/executors_artifact.js +8 -5
  46. package/dist/gate/executors/executors_artifact.js.map +1 -1
  47. package/dist/gate/executors/executors_prerequisite.d.ts.map +1 -1
  48. package/dist/gate/executors/executors_prerequisite.js +26 -6
  49. package/dist/gate/executors/executors_prerequisite.js.map +1 -1
  50. package/dist/gate/executors/executors_regex_scan.js +2 -2
  51. package/dist/gate/executors/executors_regex_scan.js.map +1 -1
  52. package/dist/gate/executors/executors_trace.d.ts.map +1 -1
  53. package/dist/gate/executors/executors_trace.js +2 -0
  54. package/dist/gate/executors/executors_trace.js.map +1 -1
  55. package/dist/gate/gate_registry_bridge.d.ts +7 -6
  56. package/dist/gate/gate_registry_bridge.d.ts.map +1 -1
  57. package/dist/gate/gate_registry_bridge.js +51 -13
  58. package/dist/gate/gate_registry_bridge.js.map +1 -1
  59. package/dist/server/tools/sf_doctor.d.ts +1 -0
  60. package/dist/server/tools/sf_doctor.d.ts.map +1 -1
  61. package/dist/server/tools/sf_doctor.js +15 -1
  62. package/dist/server/tools/sf_doctor.js.map +1 -1
  63. package/dist/server/tools/sf_gate.d.ts +1 -1
  64. package/dist/server/tools/sf_gate.js +2 -2
  65. package/dist/server/tools/sf_gate.js.map +1 -1
  66. package/dist/server/tools/sf_work.d.ts.map +1 -1
  67. package/dist/server/tools/sf_work.js +18 -6
  68. package/dist/server/tools/sf_work.js.map +1 -1
  69. package/package.json +2 -1
  70. package/templates/build/enforced.md +73 -0
  71. package/templates/build//344/270/223/351/241/271/345/256/236/347/216/260.md +75 -0
  72. package/templates/build//345/256/211/345/205/250/345/212/240/345/233/272.md +75 -0
  73. package/templates/build//346/265/213/350/257/225/344/274/230/345/205/210/347/274/226/347/240/201.md +50 -79
  74. package/templates/build//346/265/213/350/257/225/350/256/241/345/210/222.md +26 -24
  75. package/templates/build//347/274/226/347/240/201/347/272/252/345/276/213.md +75 -0
  76. package/templates/build//350/260/203/350/257/225/346/216/222/346/237/245.md +44 -75
  77. package/templates/build//351/207/215/346/236/204/346/226/271/346/263/225.md +68 -0
  78. package/templates/design/API/346/216/245/345/217/243/350/247/204/346/240/274/346/226/207/346/241/243.md +31 -28
  79. package/templates/design/enforced.md +47 -77
  80. 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 +1 -0
  81. 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
  82. package/templates/design//345/206/263/347/255/226/344/270/216/351/200/211/345/236/213.md +70 -0
  83. package/templates/design//345/210/207/347/211/207/350/247/204/345/210/222.md +49 -55
  84. 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 +33 -47
  85. package/templates/design//346/236/266/346/236/204/350/256/276/350/256/241.md +41 -83
  86. package/templates/design//351/234/200/346/261/202/345/210/206/346/236/220.md +31 -59
  87. package/templates/operate/enforced.md +11 -0
  88. package/templates/operate//344/270/212/347/272/277/350/247/202/345/257/237.md +53 -32
  89. package/templates/operate//345/217/221/345/270/203/350/257/264/346/230/216.md +3 -0
  90. package/templates/operate//351/203/250/347/275/262/351/205/215/347/275/256.md +83 -0
  91. package/templates/shared/enforced.md +46 -5
  92. package/templates/shared//345/217/215/351/246/210/344/277/256/345/244/215/351/227/255/347/216/257.md +86 -0
  93. package/templates/shared//345/267/245/347/250/213/346/211/247/350/241/214/346/200/273/347/272/262.md +148 -0
  94. package/templates/shared//345/267/245/347/250/213/347/272/252/345/276/213.md +71 -0
  95. package/templates/shared//345/274/200/345/217/221/350/200/205/345/256/252/346/263/225.md +48 -43
  96. package/templates/shared//346/234/272/345/210/266/350/257/264/346/230/216.md +67 -0
  97. 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
  98. package/templates/shared//350/264/241/347/214/256/350/247/204/350/214/203.md +78 -0
  99. package/templates/verify/enforced.md +3 -0
  100. 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 +45 -87
  101. package/templates/verify//344/273/243/347/240/201/345/256/241/346/237/245/346/212/245/345/221/212.md +7 -0
  102. package/templates/verify//345/256/241/346/237/245/346/270/205/345/215/225.md +79 -0
  103. package/templates/verify//351/252/214/350/257/201/346/226/271/346/263/225.md +72 -0
  104. package/templates/build/Bug/345/210/206/346/236/220.md +0 -59
  105. package/templates/build/Git/346/223/215/344/275/234.md +0 -48
  106. package/templates/build/OOD/350/256/276/350/256/241/346/221/230/350/246/201.md +0 -46
  107. package/templates/build/React/346/216/245/345/217/243/351/233/206/346/210/220.md +0 -42
  108. package/templates/build/Schema/345/217/230/346/233/264/346/265/201/346/260/264/347/272/277.md +0 -52
  109. package/templates/build/TS/350/264/250/351/207/217/345/256/241/346/237/245.md +0 -78
  110. package/templates/build//344/270/212/346/270/270/344/272/244/345/217/211/351/252/214/350/257/201.md +0 -68
  111. 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
  112. package/templates/build//344/273/243/347/240/201/351/227/250/347/246/201.md +0 -58
  113. package/templates/build//345/205/250/346/240/210/346/265/201/347/250/213/344/277/256/345/244/215.md +0 -48
  114. package/templates/build//345/210/207/347/211/207/346/211/247/350/241/214/347/272/252/345/276/213.md +0 -108
  115. 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
  116. package/templates/build//345/212/237/350/203/275/345/274/200/345/217/221.md +0 -66
  117. package/templates/build//345/220/216/347/253/257/345/256/236/347/216/260.md +0 -39
  118. package/templates/build//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213.md +0 -33
  119. 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
  120. package/templates/build//345/220/216/347/253/257/346/216/245/345/217/243/345/256/236/347/216/260.md +0 -43
  121. package/templates/build//345/233/275/351/231/205/345/214/226.md +0 -45
  122. 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
  123. package/templates/build//345/256/211/345/205/250/345/256/241/346/237/245.md +0 -154
  124. package/templates/build//345/256/211/345/205/250/345/256/241/350/256/241.md +0 -47
  125. package/templates/build//345/267/245/347/250/213/347/272/252/345/276/213.md +0 -56
  126. package/templates/build//346/200/247/350/203/275/345/210/206/346/236/220.md +0 -59
  127. package/templates/build//346/200/247/350/203/275/346/265/201/346/260/264/347/272/277.md +0 -53
  128. 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
  129. package/templates/build//346/225/260/346/215/256/345/272/223/350/277/201/347/247/273.md +0 -63
  130. 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
  131. package/templates/build//346/235/203/351/231/220/350/256/244/350/257/201.md +0 -49
  132. package/templates/build//346/265/213/350/257/225/350/264/250/351/207/217.md +0 -45
  133. package/templates/build//347/206/224/346/226/255/351/231/215/347/272/247.md +0 -49
  134. package/templates/build//347/212/266/346/200/201/346/265/201/350/275/254.md +0 -43
  135. package/templates/build//347/213/254/347/253/213/345/256/241/346/237/245.md +0 -45
  136. package/templates/build//347/272/246/346/235/237/345/256/236/347/216/260.md +0 -47
  137. package/templates/build//347/274/226/347/240/201/345/260/261/347/273/252/345/256/241/346/237/245.md +0 -60
  138. package/templates/build//347/274/226/347/240/201/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -22
  139. package/templates/build//347/274/226/347/240/201/350/264/250/351/207/217.md +0 -46
  140. package/templates/build//347/274/226/347/240/201/351/230/266/346/256/265/346/211/247/350/241/214.md +0 -105
  141. package/templates/build//347/274/272/351/231/267/347/256/241/347/220/206.md +0 -47
  142. package/templates/build//350/200/246/345/220/210/346/243/200/346/265/213.md +0 -86
  143. package/templates/build//350/246/206/347/233/226/347/216/207/346/240/207/345/207/206.md +0 -40
  144. package/templates/build//350/264/250/351/207/217/345/256/241/346/237/245.md +0 -111
  145. package/templates/build//350/277/201/347/247/273/346/265/201/346/260/264/347/272/277.md +0 -52
  146. package/templates/build//351/200/232/347/224/250/350/264/250/351/207/217.md +0 -176
  147. package/templates/build//351/207/215/346/236/204/346/226/271/346/241/210.md +0 -61
  148. package/templates/build//351/207/215/346/236/204/346/265/201/346/260/264/347/272/277.md +0 -53
  149. package/templates/build//351/230/262/345/276/241/346/200/247/347/274/226/347/240/201.md +0 -94
  150. package/templates/build//351/233/206/346/210/220/351/252/214/350/257/201.md +0 -67
  151. package/templates/build//351/233/267/345/214/272/345/217/215/346/250/241/345/274/217.md +0 -135
  152. package/templates/build//351/252/214/346/224/266/346/240/207/345/207/206/345/256/241/346/237/245.md +0 -64
  153. package/templates/build//351/252/214/346/224/266/346/265/213/350/257/225/350/247/204/345/210/222.md +0 -75
  154. package/templates/design/API/350/256/276/350/256/241.md +0 -47
  155. package/templates/design/N/345/212/2401/346/237/245/350/257/242.md +0 -48
  156. package/templates/design/OOD/350/256/276/350/256/241.md +0 -72
  157. package/templates/design//344/270/200/350/207/264/346/200/247/346/240/241/351/252/214.md +0 -109
  158. 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
  159. package/templates/design//344/273/273/345/212/241/346/213/206/350/247/243.md +0 -61
  160. package/templates/design//344/273/273/345/212/241/350/247/204/345/210/222.md +0 -84
  161. package/templates/design//344/274/232/350/257/235/346/201/242/345/244/215-procedures.md +0 -78
  162. package/templates/design//345/205/274/345/256/271/346/200/247/346/243/200/346/237/245.md +0 -89
  163. package/templates/design//345/210/207/347/211/207/350/256/241/345/210/222.md +0 -149
  164. package/templates/design//345/211/215/347/253/257/346/200/247/350/203/275.md +0 -49
  165. 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
  166. package/templates/design//345/216/237/345/236/213/346/272/220/347/240/201/346/217/220/345/217/226.md +0 -78
  167. package/templates/design//345/216/237/345/236/213/350/257/264/346/230/216.md +0 -200
  168. package/templates/design//345/216/237/345/236/213/350/257/264/346/230/216/345/256/241/346/237/245.md +0 -81
  169. 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
  170. package/templates/design//345/221/275/344/273/244/346/211/247/350/241/214-procedures.md +0 -45
  171. package/templates/design//345/221/275/344/273/244/350/267/257/347/224/261-procedures.md +0 -46
  172. package/templates/design//345/221/275/345/220/215.md +0 -49
  173. 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
  174. package/templates/design//345/267/245/345/205/267/350/260/203/347/224/250-procedures.md +0 -41
  175. package/templates/design//345/271/266/345/217/221/346/216/247/345/210/266.md +0 -50
  176. package/templates/design//346/212/200/346/234/257/351/200/211/345/236/213.md +0 -33
  177. package/templates/design//346/216/245/345/217/243/345/257/271/346/216/245/346/226/271/346/241/210.md +0 -97
  178. 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
  179. 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
  180. package/templates/design//346/225/260/346/215/256/350/241/200/347/274/230/345/233/276.md +0 -49
  181. package/templates/design//346/227/240/351/232/234/347/242/215.md +0 -49
  182. package/templates/design//346/236/266/346/236/204/345/206/263/347/255/226/350/256/260/345/275/225.md +0 -53
  183. package/templates/design//346/236/266/346/236/204/345/256/241/346/237/245.md +0 -256
  184. package/templates/design//346/236/266/346/236/204/350/256/276/350/256/241-constraints.md +0 -177
  185. package/templates/design//346/236/266/346/236/204/350/256/276/350/256/241-procedures.md +0 -130
  186. 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
  187. package/templates/design//346/272/220/347/240/201/345/216/237/345/236/213/344/272/244/344/273/230.md +0 -58
  188. 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
  189. 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
  190. 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
  191. package/templates/design//347/264/247/346/200/245/345/233/236/346/273/232/346/211/213/345/206/214.md +0 -77
  192. package/templates/design//347/274/226/347/240/201/345/211/215/346/276/204/346/270/205.md +0 -85
  193. 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
  194. package/templates/design//350/207/252/344/270/273/351/200/211/345/236/213.md +0 -57
  195. 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
  196. 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
  197. package/templates/design//350/256/276/350/256/241/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -21
  198. package/templates/design//350/257/246/347/273/206/350/256/276/350/256/241-procedures.md +0 -123
  199. package/templates/design//350/257/246/347/273/206/350/256/276/350/256/241.md +0 -109
  200. package/templates/design//350/257/246/347/273/206/350/256/276/350/256/241/345/256/241/346/237/245.md +0 -88
  201. package/templates/design//350/260/203/350/257/225/346/226/271/346/263/225/350/256/272.md +0 -43
  202. package/templates/design//350/277/201/347/247/273/350/257/204/344/274/260.md +0 -67
  203. 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
  204. package/templates/design//351/234/200/346/261/202/346/276/204/346/270/205.md +0 -65
  205. package/templates/design//351/234/200/346/261/202/350/264/250/351/207/217/345/256/241/346/237/245.md +0 -88
  206. package/templates/design//351/242/206/345/237/237/351/251/261/345/212/250/350/256/276/350/256/241.md +0 -43
  207. package/templates/operate//345/217/221/345/270/203/350/257/264/346/230/216/345/256/241/346/237/245.md +0 -60
  208. package/templates/operate//350/277/220/347/273/264/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -22
  209. package/templates/operate//351/203/250/347/275/262/351/205/215/347/275/256/345/256/241/346/237/245.md +0 -59
  210. package/templates/shared/Diff/345/275/222/345/261/236/350/277/275/350/270/252.md +0 -55
  211. package/templates/shared/Java/350/264/250/351/207/217/351/227/250/347/246/201.md +0 -54
  212. package/templates/shared/OOD/344/270/216SOLID/350/256/276/350/256/241.md +0 -48
  213. package/templates/shared//344/272/247/347/211/251Schema/346/263/250/345/206/214/344/270/255/345/277/203.md +0 -57
  214. package/templates/shared//344/272/247/347/211/251/345/245/221/347/272/246.md +0 -44
  215. 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
  216. 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
  217. package/templates/shared//344/273/273/345/212/241/347/212/266/346/200/201/346/234/272.md +0 -55
  218. package/templates/shared//344/273/273/345/212/241/347/256/241/347/220/206/345/231/250.md +0 -55
  219. package/templates/shared//344/274/230/351/233/205/345/201/234/346/234/272.md +0 -43
  220. 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
  221. package/templates/shared//344/275/234/347/224/250/345/237/237/347/247/237/347/272/246.md +0 -55
  222. package/templates/shared//345/206/262/347/252/201/351/227/250/347/246/201.md +0 -55
  223. package/templates/shared//345/206/263/347/255/226/347/275/221/345/205/263.md +0 -47
  224. package/templates/shared//345/210/207/347/211/207/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -72
  225. package/templates/shared//345/217/230/345/274/202/345/256/241/350/256/241.md +0 -58
  226. 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
  227. package/templates/shared//345/221/275/344/273/244/346/211/247/350/241/214.md +0 -48
  228. package/templates/shared//345/221/275/344/273/244/350/267/257/347/224/261.md +0 -45
  229. package/templates/shared//345/233/236/345/275/222/347/237/251/351/230/265.md +0 -54
  230. package/templates/shared//345/244/232/347/247/237/346/210/267.md +0 -49
  231. package/templates/shared//345/256/241/350/256/241/346/227/245/345/277/227.md +0 -46
  232. package/templates/shared//345/257/274/345/205/245/345/257/274/345/207/272.md +0 -51
  233. package/templates/shared//345/267/245/344/275/234/345/214/272/344/272/222/346/226/245/351/224/201.md +0 -52
  234. package/templates/shared//345/267/245/344/275/234/345/214/272/345/224/244/351/206/222.md +0 -54
  235. package/templates/shared//345/267/245/344/275/234/346/265/201/345/245/221/347/272/246.md +0 -42
  236. package/templates/shared//345/267/245/344/275/234/346/265/201/345/274/225/346/223/216.md +0 -50
  237. package/templates/shared//345/267/245/344/275/234/346/265/201/346/250/241/347/211/210/345/214/205.md +0 -34
  238. package/templates/shared//345/267/245/345/205/267/350/260/203/347/224/250.md +0 -48
  239. package/templates/shared//345/271/266/345/217/221/351/224/201.md +0 -57
  240. package/templates/shared//346/211/247/350/241/214/345/256/210/345/215/253/350/257/204/344/274/260.md +0 -47
  241. package/templates/shared//346/211/251/345/261/225/347/224/237/345/221/275/345/221/250/346/234/237.md +0 -34
  242. package/templates/shared//346/212/200/346/234/257/345/206/263/347/255/226/344/270/273/346/235/203.md +0 -50
  243. package/templates/shared//346/212/245/350/241/250/347/273/237/350/256/241.md +0 -50
  244. package/templates/shared//346/224/257/344/273/230.md +0 -51
  245. package/templates/shared//346/225/217/346/204/237/344/277/241/346/201/257/345/244/204/347/220/206.md +0 -77
  246. package/templates/shared//346/225/217/346/204/237/344/277/241/346/201/257/346/211/253/346/217/217.md +0 -53
  247. package/templates/shared//346/225/260/346/215/256/346/235/203/351/231/220.md +0 -47
  248. package/templates/shared//346/226/275/345/267/245/346/214/207/344/273/244/345/245/221/347/272/246.md +0 -69
  249. package/templates/shared//346/227/245/345/277/227/346/262/273/347/220/206.md +0 -31
  250. package/templates/shared//346/234/272/345/210/266/350/207/252/346/262/273/347/220/206.md +0 -31
  251. package/templates/shared//346/240/207/345/207/206/350/265/204/344/272/247/350/246/206/347/233/226.md +0 -50
  252. package/templates/shared//346/240/270/345/277/203/344/275/223/351/252/214/345/216/237/345/210/231.md +0 -38
  253. 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
  254. package/templates/shared//346/250/241/347/211/210Frontmatter.md +0 -125
  255. package/templates/shared//346/250/241/347/211/210/350/264/241/347/214/256/346/214/207/345/215/227.md +0 -282
  256. 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
  257. 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
  258. 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
  259. package/templates/shared//346/274/224/350/277/233/345/233/236/345/275/222/351/227/250/346/216/247.md +0 -50
  260. package/templates/shared//347/224/250/346/210/267/345/217/215/351/246/210/345/245/221/347/272/246.md +0 -86
  261. package/templates/shared//347/237/245/350/257/206/344/270/273/346/235/203.md +0 -66
  262. package/templates/shared//347/237/245/350/257/206/346/262/273/347/220/206.md +0 -31
  263. package/templates/shared//347/237/245/350/257/206/346/263/250/345/205/245/350/276/271/347/225/214.md +0 -47
  264. package/templates/shared//347/273/206/350/212/202/347/272/252/345/276/213.md +0 -54
  265. 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
  266. package/templates/shared//350/256/241/345/210/222/345/211/215/347/275/256/351/227/250.md +0 -47
  267. package/templates/shared//350/256/276/350/256/241/344/272/247/347/211/251/345/214/205.md +0 -58
  268. package/templates/shared//350/257/255/344/271/211/350/257/201/346/215/256.md +0 -55
  269. 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
  270. package/templates/shared//350/276/223/345/205/245/346/235/220/346/226/231/345/245/221/347/272/246.md +0 -50
  271. package/templates/shared//350/277/220/350/241/214/345/256/211/345/205/250/345/214/205.md +0 -58
  272. package/templates/shared//351/200/232/347/224/250/345/206/263/347/255/226/347/240/224/350/256/250.md +0 -62
  273. package/templates/shared//351/200/232/347/224/250/346/234/272/346/242/260/346/235/241/346/254/276.md +0 -47
  274. package/templates/shared//351/200/232/347/237/245.md +0 -50
  275. package/templates/shared//351/203/250/347/275/262/351/205/215/347/275/256.md +0 -14
  276. package/templates/shared//351/205/215/347/275/256/344/274/230/345/205/210/347/272/247.md +0 -67
  277. package/templates/shared//351/205/215/347/275/256/350/220/275/347/233/230/350/276/271/347/225/214.md +0 -32
  278. package/templates/shared//351/230/262/345/255/244/345/262/233/345/256/236/347/216/260.md +0 -51
  279. package/templates/shared//351/233/266/351/205/215/347/275/256/345/210/235/345/247/213/345/214/226.md +0 -57
  280. 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
  281. package/templates/shared//351/252/214/350/257/201/345/221/275/344/273/244/347/224/237/346/210/220.md +0 -55
  282. package/templates/shared//351/252/214/350/257/201/345/245/221/347/272/246.md +0 -48
  283. package/templates/verify/Docker/351/203/250/347/275/262.md +0 -46
  284. package/templates/verify/POC/347/273/223/350/256/272.md +0 -53
  285. package/templates/verify/React/345/210/227/350/241/250/350/241/250/346/240/274.md +0 -43
  286. package/templates/verify/React/347/212/266/346/200/201/347/256/241/347/220/206.md +0 -42
  287. package/templates/verify/React/347/273/204/344/273/266.md +0 -42
  288. package/templates/verify/React/350/241/250/345/215/225.md +0 -43
  289. package/templates/verify/React/350/267/257/347/224/261.md +0 -43
  290. package/templates/verify/SOLID/344/273/243/347/240/201/345/256/241/346/237/245.md +0 -74
  291. package/templates/verify/SOLID/350/256/276/350/256/241.md +0 -31
  292. package/templates/verify/Schema/345/205/274/345/256/271.md +0 -42
  293. package/templates/verify/Vue/347/212/266/346/200/201/347/256/241/347/220/206.md +0 -42
  294. package/templates/verify/Vue/347/273/204/344/273/266.md +0 -42
  295. package/templates/verify/Vue/350/267/257/347/224/261.md +0 -43
  296. 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
  297. package/templates/verify//344/270/273/351/223/276/350/267/257/346/216/245/345/205/245.md +0 -38
  298. package/templates/verify//344/272/213/344/273/266/351/251/261/345/212/250.md +0 -46
  299. package/templates/verify//344/272/213/345/212/241/346/250/241/345/274/217.md +0 -42
  300. 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
  301. 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
  302. package/templates/verify//344/274/232/350/257/235/346/201/242/345/244/215.md +0 -46
  303. 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
  304. package/templates/verify//345/210/206/351/241/265/346/237/245/350/257/242.md +0 -41
  305. package/templates/verify//345/211/215/347/253/257/351/241/265/351/235/242.md +0 -40
  306. 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
  307. package/templates/verify//345/217/221/345/270/203/345/220/216/345/256/241/346/237/245.md +0 -73
  308. package/templates/verify//345/220/216/347/253/257API.md +0 -39
  309. package/templates/verify//345/242/236/345/210/240/346/224/271/346/237/245.md +0 -45
  310. package/templates/verify//345/244/226/351/203/250/344/276/235/350/265/226.md +0 -43
  311. package/templates/verify//345/245/221/347/272/246/345/205/274/345/256/271.md +0 -42
  312. package/templates/verify//345/256/232/346/227/266/344/273/273/345/212/241.md +0 -39
  313. package/templates/verify//345/256/236/346/227/266/346/216/250/351/200/201.md +0 -48
  314. package/templates/verify//345/256/241/346/237/245/346/221/230/350/246/201.md +0 -58
  315. package/templates/verify//345/267/245/344/275/234/346/265/201.md +0 -38
  316. package/templates/verify//345/271/266/345/217/221/345/256/241/346/237/245.md +0 -132
  317. package/templates/verify//345/274/202/346/255/245/345/257/274/345/207/272.md +0 -41
  318. package/templates/verify//346/200/247/350/203/275/345/256/241/346/237/245.md +0 -110
  319. package/templates/verify//346/216/245/345/217/243/345/245/221/347/272/246.md +0 -44
  320. package/templates/verify//346/216/245/345/217/243/345/245/221/347/272/246/345/256/241/346/237/245.md +0 -131
  321. package/templates/verify//346/220/234/347/264/242/346/250/241/345/274/217.md +0 -47
  322. package/templates/verify//346/225/205/351/232/234/345/244/215/347/233/230.md +0 -67
  323. package/templates/verify//346/225/260/346/215/256/345/272/223/345/217/230/346/233/264.md +0 -37
  324. package/templates/verify//346/225/260/346/215/256/351/232/220/347/247/201.md +0 -46
  325. package/templates/verify//346/226/207/344/273/266/344/270/212/344/274/240.md +0 -45
  326. package/templates/verify//346/227/245/345/277/227.md +0 -45
  327. 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
  328. package/templates/verify//346/240/270/345/277/203/345/267/245/347/250/213/346/211/247/350/241/214.md +0 -65
  329. package/templates/verify//347/237/245/350/257/206/346/263/250/345/205/245.md +0 -38
  330. 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
  331. package/templates/verify//347/274/223/345/255/230/347/255/226/347/225/245.md +0 -45
  332. 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
  333. package/templates/verify//350/201/224/350/260/203/351/252/214/350/257/201.md +0 -87
  334. package/templates/verify//350/256/276/350/256/241/345/256/241/350/256/241.md +0 -184
  335. package/templates/verify//350/257/225/350/277/220/350/241/214/347/206/224/346/226/255.md +0 -74
  336. package/templates/verify//350/276/223/345/205/245/346/240/241/351/252/214.md +0 -44
  337. package/templates/verify//351/203/250/347/275/262/345/217/221/345/270/203.md +0 -101
  338. package/templates/verify//351/224/231/350/257/257/345/244/204/347/220/206.md +0 -46
  339. package/templates/verify//351/224/231/350/257/257/350/276/271/347/225/214.md +0 -38
  340. package/templates/verify//351/232/220/347/247/201/345/256/241/346/237/245.md +0 -37
  341. package/templates/verify//351/252/214/350/257/201.md +0 -38
  342. package/templates/verify//351/252/214/350/257/201/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -22
package/README.md CHANGED
@@ -188,6 +188,18 @@ L0/L1 需旁挂探针文件(`probe` + `probe_path`),依赖缺失会硬失
188
188
 
189
189
  > ⚠️ **不要和内置模板同名**(如 `procedures/功能开发流程.md` 会被当篡改拒绝);已有文件不会被覆盖;`triggers` 决定命中率,写宽些(含中英文同义词)。
190
190
 
191
+ ### 自定义软/硬下限
192
+
193
+ 除了上面的知识注入(verification_layer),你还可以在 `.soloforge/knowledge/` 放带 `kind` 的 md,SoloForge 自动按 kind 做成软/硬下限:
194
+
195
+ | kind | 自动成为 | 怎么用 |
196
+ |------|---------|--------|
197
+ | `guidance` | 软下限(注入 prompt)| frontmatter 加 `kind: guidance` + `triggers`,triggers 匹配 intent 时注入 |
198
+ | `enforced` | 硬下限(门禁阻断)| frontmatter 加 `kind: enforced` + `gate` + `checks`,按 check.gate 聚合执行 |
199
+ | `artifact` | 产物模板 | frontmatter 加 `kind: artifact` + `artifact_contract` 块(`domain`/`artifact_kind`/`path_pattern`/`gate`/`required`),并入 contract(AI 可选 target 产出)|
200
+
201
+ 内置优先:同 id/kind 用户资产不覆盖内置。全局级放 `~/.soloforge/patterns/`。详见 [`docs/frontmatter字段字典.md`](docs/frontmatter字段字典.md) 用户自定义资产节。
202
+
191
203
  ## 📐 设计产物目录
192
204
 
193
205
  SoloForge 用固定的 `docs/` 结构管理产物,每个产物有明确位置和上下游依赖,系统按固定路径查找:
@@ -71,7 +71,9 @@ function generateWorkflowSection() {
71
71
  function generateDomainsSection() {
72
72
  const rows = ALL_CONTRACTS.map((c) => {
73
73
  const produces = c.produces.map((p) => `\`${p.kind}\``).join("、");
74
- const upstream = c.requires_upstream.length > 0 ? `(依赖上游:${c.requires_upstream.join("、")})` : "";
74
+ const upstream = c.requires_upstream.length > 0
75
+ ? `(依赖上游:${c.requires_upstream.map((r) => `${r.from_domain}.${r.artifact_kind}`).join("、")})`
76
+ : "";
75
77
  return `| ${c.name} | ${c.description} | ${produces}${upstream} |`;
76
78
  });
77
79
  return `## 四领域与产物
@@ -1 +1 @@
1
- {"version":3,"file":"integration_guide.js","sourceRoot":"","sources":["../../../../src/context/adapters/shared/integration_guide.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAGrF;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAsB;IAC9D,OAAO;;;;EAIP,wBAAwB,CAAC,MAAM,CAAC;;EAEhC,iBAAiB,EAAE;;;;;;qBAMA,wBAAwB;CAC5C,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAuB;IAC9D,OAAO,CAAC,sBAAsB,EAAE,EAAE,uBAAuB,EAAE,EAAE,sBAAsB,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxG,CAAC;AAED,qCAAqC;AACrC,SAAS,sBAAsB;IAC7B,MAAM,IAAI,GAAG,2BAA2B,EAAE,CAAC,GAAG,CAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,WAAW,IAAI,CACnD,CAAC;IACF,OAAO;;;;;;EAMP,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACpB,CAAC;AAED,sEAAsE;AACtE,SAAS,uBAAuB;IAC9B,OAAO;;;;;;;;iHAQwG,CAAC;AAClH,CAAC;AAED,0CAA0C;AAC1C,SAAS,sBAAsB;IAC7B,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACnC,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClE,MAAM,QAAQ,GACZ,CAAC,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,OAAO,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,WAAW,MAAM,QAAQ,GAAG,QAAQ,IAAI,CAAC;IACrE,CAAC,CAAC,CAAC;IACH,OAAO;;;;EAIP,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;;sHAEqG,CAAC;AACvH,CAAC"}
1
+ {"version":3,"file":"integration_guide.js","sourceRoot":"","sources":["../../../../src/context/adapters/shared/integration_guide.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAGrF;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAsB;IAC9D,OAAO;;;;EAIP,wBAAwB,CAAC,MAAM,CAAC;;EAEhC,iBAAiB,EAAE;;;;;;qBAMA,wBAAwB;CAC5C,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAuB;IAC9D,OAAO,CAAC,sBAAsB,EAAE,EAAE,uBAAuB,EAAE,EAAE,sBAAsB,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxG,CAAC;AAED,qCAAqC;AACrC,SAAS,sBAAsB;IAC7B,MAAM,IAAI,GAAG,2BAA2B,EAAE,CAAC,GAAG,CAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,WAAW,IAAI,CACnD,CAAC;IACF,OAAO;;;;;;EAMP,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACpB,CAAC;AAED,sEAAsE;AACtE,SAAS,uBAAuB;IAC9B,OAAO;;;;;;;;iHAQwG,CAAC;AAClH,CAAC;AAED,0CAA0C;AAC1C,SAAS,sBAAsB;IAC7B,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACnC,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClE,MAAM,QAAQ,GACZ,CAAC,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;YAC5B,CAAC,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;YAC7F,CAAC,CAAC,EAAE,CAAC;QACT,OAAO,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,WAAW,MAAM,QAAQ,GAAG,QAAQ,IAAI,CAAC;IACrE,CAAC,CAAC,CAAC;IACH,OAAO;;;;EAIP,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;;sHAEqG,CAAC;AACvH,CAAC"}
@@ -8,8 +8,12 @@
8
8
  * 被谁调用:sf_work(verify 动作)、observer(派生状态)、sf_gate
9
9
  * 调用谁:Node.js fs(文件读写)
10
10
  *
11
- * 数据流:GateRecord JSON ↔ .soloforge/gates/{domain}-{gate}.json
12
- * 持久化:.soloforge/gates/{domain}-{gate}.json
11
+ * 数据流:GateRecord JSON ↔ .soloforge/gates/{domain}-{gate}-{artifact哈希}.json
12
+ * 持久化:.soloforge/gates/{domain}-{gate}-{artifact哈希}.json
13
+ *
14
+ * 主键说明:文件名含 artifact_path 哈希维度,同域同 gate_name 的不同产物各自独立文件、互不覆盖。
15
+ * 修复历史缺陷:此前主键仅 (domain, gate_name),design 域 8 个产物共用 design-gate 时全部写入
16
+ * 同一文件,后写覆盖前写,导致多产物无法各自 verified、retry_count 跨产物串台。
13
17
  */
14
18
  import type { GateRecord, DomainName } from "./types.js";
15
19
  /**
@@ -21,9 +25,9 @@ export declare class GateRecordStore {
21
25
  constructor(projectRoot: string);
22
26
  /** 门禁记录文件路径 */
23
27
  private filePath;
24
- /** 读取门禁记录(不存在返回 null */
25
- read(domain: string, gateName: string): Promise<GateRecord | null>;
26
- /** 写入门禁记录(覆盖已有) */
28
+ /** 读取门禁记录(不存在返回 null)。artifactPath 定位到具体产物。 */
29
+ read(domain: string, gateName: string, artifactPath: string): Promise<GateRecord | null>;
30
+ /** 写入门禁记录(按 domain+gate_name+artifact_path 三元主键覆盖同产物的旧记录) */
27
31
  write(record: GateRecord): Promise<GateRecord>;
28
32
  /** 列出指定域的所有门禁记录 */
29
33
  listByDomain(domain: DomainName): Promise<GateRecord[]>;
@@ -37,13 +41,13 @@ export declare class GateRecordStore {
37
41
  * 筛选:task_id 匹配 + passed=false,按 evaluated_at 降序取最新。
38
42
  * 无匹配(任务首次执行 / 上次通过 / 旧记录无 task_id)返回 null。
39
43
  */
40
- readLatestFailed(domain: DomainName, taskId: string): Promise<GateRecord | null>;
44
+ readLatestFailed(domain: DomainName, taskId: string, artifactPath?: string): Promise<GateRecord | null>;
41
45
  /**
42
46
  * 判断门禁记录是否 stale(产物 git hash 不匹配)。
43
47
  * 场景:git revert 后产物内容变了但门禁记录的 hash 还是旧的。
44
48
  */
45
49
  isStale(record: GateRecord, currentGitHash: string): boolean;
46
50
  /** 删除门禁记录 */
47
- delete(domain: string, gateName: string): Promise<void>;
51
+ delete(domain: string, gateName: string, artifactPath: string): Promise<void>;
48
52
  }
49
53
  //# sourceMappingURL=gate_record_store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gate_record_store.d.ts","sourceRoot":"","sources":["../../src/core/gate_record_store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAmCzD;;;GAGG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,MAAM;IAEhD,eAAe;IACf,OAAO,CAAC,QAAQ;IAIhB,yBAAyB;IACnB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAIxE,mBAAmB;IACb,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAKpD,mBAAmB;IACb,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAkB7D,oBAAoB;IACd,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAkBjE;;;;;;;OAOG;IACG,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAStF;;;OAGG;IACH,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO;IAO5D,aAAa;IACP,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAQ9D"}
1
+ {"version":3,"file":"gate_record_store.d.ts","sourceRoot":"","sources":["../../src/core/gate_record_store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA2CzD;;;GAGG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,MAAM;IAEhD,eAAe;IACf,OAAO,CAAC,QAAQ;IAIhB,+CAA+C;IACzC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAI9F,6DAA6D;IACvD,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAKpD,mBAAmB;IACb,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAmB7D,oBAAoB;IACd,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAkBjE;;;;;;;OAOG;IACG,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAU7G;;;OAGG;IACH,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO;IAO5D,aAAa;IACP,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAQpF"}
@@ -8,19 +8,31 @@
8
8
  * 被谁调用:sf_work(verify 动作)、observer(派生状态)、sf_gate
9
9
  * 调用谁:Node.js fs(文件读写)
10
10
  *
11
- * 数据流:GateRecord JSON ↔ .soloforge/gates/{domain}-{gate}.json
12
- * 持久化:.soloforge/gates/{domain}-{gate}.json
11
+ * 数据流:GateRecord JSON ↔ .soloforge/gates/{domain}-{gate}-{artifact哈希}.json
12
+ * 持久化:.soloforge/gates/{domain}-{gate}-{artifact哈希}.json
13
+ *
14
+ * 主键说明:文件名含 artifact_path 哈希维度,同域同 gate_name 的不同产物各自独立文件、互不覆盖。
15
+ * 修复历史缺陷:此前主键仅 (domain, gate_name),design 域 8 个产物共用 design-gate 时全部写入
16
+ * 同一文件,后写覆盖前写,导致多产物无法各自 verified、retry_count 跨产物串台。
13
17
  */
14
18
  import { readFile, writeFile, mkdir, readdir } from "node:fs/promises";
15
19
  import { join } from "node:path";
20
+ import { createHash } from "node:crypto";
16
21
  // ═══════════════════════════════════════════
17
22
  // 路径常量与工具函数
18
23
  // ═══════════════════════════════════════════
19
24
  /** 门禁记录目录(相对于项目根) */
20
25
  const GATES_DIR = ".soloforge/gates";
21
- /** 门禁记录文件名格式:{domain}-{gate_name}.json */
22
- function gateFileName(domain, gateName) {
23
- return `${domain}-${gateName}.json`;
26
+ /** artifact_path → 12 位 sha256 短哈希。
27
+ * 哈希化原因:artifact_path 含中文与路径分隔符(如 "docs/context/需求分析.md"),
28
+ * 不能直接做文件名;哈希保证文件名安全且确定,碰撞概率可忽略。 */
29
+ function hashArtifactPath(artifactPath) {
30
+ return createHash("sha256").update(artifactPath).digest("hex").slice(0, 12);
31
+ }
32
+ /** 门禁记录文件名格式:{domain}-{gate_name}-{artifact_path哈希}.json
33
+ * 含 artifact_path 维度:同域同 gate 的不同产物各自独立文件,互不覆盖。 */
34
+ function gateFileName(domain, gateName, artifactPath) {
35
+ return `${domain}-${gateName}-${hashArtifactPath(artifactPath)}.json`;
24
36
  }
25
37
  /** 安全读取 JSON 文件,不存在返回 null */
26
38
  async function readJsonFile(filePath) {
@@ -51,16 +63,16 @@ export class GateRecordStore {
51
63
  this.projectRoot = projectRoot;
52
64
  }
53
65
  /** 门禁记录文件路径 */
54
- filePath(domain, gateName) {
55
- return join(this.projectRoot, GATES_DIR, gateFileName(domain, gateName));
66
+ filePath(domain, gateName, artifactPath) {
67
+ return join(this.projectRoot, GATES_DIR, gateFileName(domain, gateName, artifactPath));
56
68
  }
57
- /** 读取门禁记录(不存在返回 null */
58
- async read(domain, gateName) {
59
- return readJsonFile(this.filePath(domain, gateName));
69
+ /** 读取门禁记录(不存在返回 null)。artifactPath 定位到具体产物。 */
70
+ async read(domain, gateName, artifactPath) {
71
+ return readJsonFile(this.filePath(domain, gateName, artifactPath));
60
72
  }
61
- /** 写入门禁记录(覆盖已有) */
73
+ /** 写入门禁记录(按 domain+gate_name+artifact_path 三元主键覆盖同产物的旧记录) */
62
74
  async write(record) {
63
- await writeJsonFile(this.filePath(record.domain, record.gate_name), record);
75
+ await writeJsonFile(this.filePath(record.domain, record.gate_name, record.artifact_path), record);
64
76
  return record;
65
77
  }
66
78
  /** 列出指定域的所有门禁记录 */
@@ -73,7 +85,8 @@ export class GateRecordStore {
73
85
  for (const file of files) {
74
86
  if (file.startsWith(prefix) && file.endsWith(".json")) {
75
87
  const record = await readJsonFile(join(dir, file));
76
- if (record)
88
+ // 过滤无 artifact_path 的旧格式幽灵记录(升维前的 {domain}-{gate}.json,latest 覆盖的错误状态)
89
+ if (record && record.artifact_path)
77
90
  records.push(record);
78
91
  }
79
92
  }
@@ -111,12 +124,13 @@ export class GateRecordStore {
111
124
  * 筛选:task_id 匹配 + passed=false,按 evaluated_at 降序取最新。
112
125
  * 无匹配(任务首次执行 / 上次通过 / 旧记录无 task_id)返回 null。
113
126
  */
114
- async readLatestFailed(domain, taskId) {
127
+ async readLatestFailed(domain, taskId, artifactPath) {
115
128
  if (!taskId)
116
129
  return null;
117
130
  const records = await this.listByDomain(domain);
118
131
  const failed = records
119
- .filter((r) => r.task_id === taskId && r.passed === false)
132
+ .filter((r) => r.task_id === taskId && r.passed === false
133
+ && (!artifactPath || r.artifact_path === artifactPath))
120
134
  .sort((a, b) => b.evaluated_at - a.evaluated_at);
121
135
  return failed[0] ?? null;
122
136
  }
@@ -132,10 +146,10 @@ export class GateRecordStore {
132
146
  // failed 的记录本来就要重新跑,不存在"漂移"问题
133
147
  }
134
148
  /** 删除门禁记录 */
135
- async delete(domain, gateName) {
149
+ async delete(domain, gateName, artifactPath) {
136
150
  const { rm } = await import("node:fs/promises");
137
151
  try {
138
- await rm(this.filePath(domain, gateName));
152
+ await rm(this.filePath(domain, gateName, artifactPath));
139
153
  }
140
154
  catch {
141
155
  // 文件不存在也视为成功
@@ -1 +1 @@
1
- {"version":3,"file":"gate_record_store.js","sourceRoot":"","sources":["../../src/core/gate_record_store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gate_record_store.js","sourceRoot":"","sources":["../../src/core/gate_record_store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"observer.d.ts","sourceRoot":"","sources":["../../src/core/observer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AA8C9D;;;GAGG;AACH,qBAAa,QAAQ;IAEjB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAFT,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,cAAc,EAAE;IAG9C,eAAe;IACf,OAAO,CAAC,WAAW;IAInB,gBAAgB;YACF,gBAAgB;IAiB9B;;;OAGG;IACG,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;CAoE5D"}
1
+ {"version":3,"file":"observer.d.ts","sourceRoot":"","sources":["../../src/core/observer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AA8C9D;;;GAGG;AACH,qBAAa,QAAQ;IAEjB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAFT,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,cAAc,EAAE;IAG9C,eAAe;IACf,OAAO,CAAC,WAAW;IAInB,gBAAgB;YACF,gBAAgB;IAiB9B;;;OAGG;IACG,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;CAsE5D"}
@@ -72,7 +72,7 @@ export class Observer {
72
72
  async classifyArtifact(artifact, domain) {
73
73
  const fullPath = join(this.projectRoot, artifact.path_pattern);
74
74
  const exists = await fileExists(fullPath);
75
- const record = await this.gateRecordStore.read(domain, artifact.gate);
75
+ const record = await this.gateRecordStore.read(domain, artifact.gate, artifact.path_pattern);
76
76
  const currentHash = exists ? await getFileGitHash(fullPath, this.projectRoot) : "";
77
77
  const stale = record ? this.gateRecordStore.isStale(record, currentHash) : false;
78
78
  return {
@@ -110,11 +110,14 @@ export class Observer {
110
110
  const staleGates = [];
111
111
  for (const s of statuses) {
112
112
  if (!s.exists) {
113
- pending.push(s.artifact);
113
+ // required:false 的可选产物未产出不列 pending(不催产出,避免 observe 噪音);
114
+ // 产出后正常走 verified/unverified 分类
115
+ if (s.artifact.required)
116
+ pending.push(s.artifact);
114
117
  }
115
118
  else if (s.stale) {
116
119
  unverified.push(s.artifact);
117
- const rec = await this.gateRecordStore.read(domain, s.artifact.gate);
120
+ const rec = await this.gateRecordStore.read(domain, s.artifact.gate, s.artifact.path_pattern);
118
121
  if (rec)
119
122
  staleGates.push(rec);
120
123
  }
@@ -140,7 +143,7 @@ export class Observer {
140
143
  missingUpstream.push(req);
141
144
  continue;
142
145
  }
143
- const rec = await this.gateRecordStore.read(req.from_domain, upstreamArtifact.gate);
146
+ const rec = await this.gateRecordStore.read(req.from_domain, upstreamArtifact.gate, upstreamArtifact.path_pattern);
144
147
  if (!rec?.passed)
145
148
  missingUpstream.push(req);
146
149
  }
@@ -1 +1 @@
1
- {"version":3,"file":"observer.js","sourceRoot":"","sources":["../../src/core/observer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observer.js","sourceRoot":"","sources":["../../src/core/observer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"derived_registry.d.ts","sourceRoot":"","sources":["../../../src/domain/asset_registry/derived_registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EACC,UAAU,EAAE,UAAU,EAAE,WAAW,EAC9C,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EACvD,MAAM,oBAAoB,CAAC;AAqB5B,0CAA0C;AAC1C,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,WAAW,EAAE,GACtB,YAAY,GAAG,IAAI,CAyErB;AAuBD,yCAAyC;AACzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CA+B/D;AAID,wBAAgB,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAElF;AAED,+DAA+D;AAC/D,wBAAgB,UAAU,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAGvF;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,GAAG,YAAY,EAAE,CAElF;AAED,uDAAuD;AACvD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,GAAG,YAAY,EAAE,CAEjG;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,CAElF;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,GAAG,YAAY,EAAE,CAElF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAEjF;AAED,iCAAiC;AACjC,wBAAgB,SAAS,CAAC,GAAG,EAAE,eAAe,GAAG,YAAY,EAAE,CAE9D;AAOD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,eAAe,GACnB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAqBtC;AAED,yCAAyC;AACzC,MAAM,WAAW,WAAW;IAC1B,kDAAkD;IAClD,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,+CAA+C;IAC/C,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAC;IAC3B,4CAA4C;IAC5C,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAYD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,eAAe,GAAG,WAAW,CAsB/D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAWxF;AAED,qCAAqC;AACrC,eAAO,MAAM,WAAW,GAAI,SAAS,MAAM,EAAE,IAAI,MAAM,KAAG,OAAiD,CAAC;AAC5G,0BAA0B;AAC1B,eAAO,MAAM,aAAa,GAAI,SAAS,MAAM,EAAE,IAAI,MAAM,KAAG,OAAgD,CAAC;AAI7G,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAWD,iCAAiC;AACjC,wBAAgB,YAAY,CAAC,OAAO,GAAE,MAA+B,GAAG,QAAQ,EAAE,CAOjF"}
1
+ {"version":3,"file":"derived_registry.d.ts","sourceRoot":"","sources":["../../../src/domain/asset_registry/derived_registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EACC,UAAU,EAAE,UAAU,EAAE,WAAW,EAC9C,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EACvD,MAAM,oBAAoB,CAAC;AAkC5B,0CAA0C;AAC1C,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,WAAW,EAAE,GACtB,YAAY,GAAG,IAAI,CAyErB;AAuBD,yCAAyC;AACzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAgC/D;AAID,wBAAgB,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAElF;AAED,+DAA+D;AAC/D,wBAAgB,UAAU,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAGvF;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,GAAG,YAAY,EAAE,CAElF;AAED,uDAAuD;AACvD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,GAAG,YAAY,EAAE,CAEjG;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,CAElF;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,GAAG,YAAY,EAAE,CAElF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAEjF;AAED,iCAAiC;AACjC,wBAAgB,SAAS,CAAC,GAAG,EAAE,eAAe,GAAG,YAAY,EAAE,CAE9D;AAOD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,eAAe,GACnB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAqBtC;AAED,yCAAyC;AACzC,MAAM,WAAW,WAAW;IAC1B,kDAAkD;IAClD,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,+CAA+C;IAC/C,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAC;IAC3B,4CAA4C;IAC5C,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAYD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,eAAe,GAAG,WAAW,CAsB/D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAWxF;AAED,qCAAqC;AACrC,eAAO,MAAM,WAAW,GAAI,SAAS,MAAM,EAAE,IAAI,MAAM,KAAG,OAAiD,CAAC;AAC5G,0BAA0B;AAC1B,eAAO,MAAM,aAAa,GAAI,SAAS,MAAM,EAAE,IAAI,MAAM,KAAG,OAAgD,CAAC;AAI7G,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAWD,iCAAiC;AACjC,wBAAgB,YAAY,CAAC,OAAO,GAAE,MAA+B,GAAG,QAAQ,EAAE,CAOjF"}
@@ -29,6 +29,20 @@ function deriveStageFromPath(relPath) {
29
29
  return "operate";
30
30
  return "shared";
31
31
  }
32
+ /** 读取 owner_mechanism:兼容两种 frontmatter 写法 —— 顶层(owner_mechanism: mc-x)
33
+ * 与 extra 块内(extra:\n owner_mechanism: mc-x)。
34
+ * parseAssetFile 把 frontmatter 顶层字段平铺进 asset.extra,extra: 块整体落在 asset.extra.extra。
35
+ * 归零重构后约定 owner_mechanism 写在 extra: 块内,但历史/部分资产写在顶层,两者都支持。
36
+ * 若只读 asset.extra.owner_mechanism(顶层),则 extra 块内写法读不到 → 误判孤儿。 */
37
+ function getOwnerMechanism(extra) {
38
+ if (!extra)
39
+ return undefined;
40
+ const direct = extra.owner_mechanism;
41
+ if (direct)
42
+ return String(direct);
43
+ const nested = extra.extra?.owner_mechanism;
44
+ return nested ? String(nested) : undefined;
45
+ }
32
46
  /** 归零重构:只读新字段,stage 从目录推导,旧字段全部进 extra */
33
47
  export function parseAssetFile(absPath, rootDir, warnings) {
34
48
  let raw;
@@ -94,7 +108,7 @@ export function parseAssetFile(absPath, rootDir, warnings) {
94
108
  return {
95
109
  id, kind, stage, triggers,
96
110
  check, gate, sync_policy, status, title,
97
- path: relPath, content: parsed.content, extra,
111
+ path: relPath, absPath, content: parsed.content, extra,
98
112
  };
99
113
  }
100
114
  function emptyRegistry() {
@@ -147,8 +161,9 @@ export function scanDerivedRegistry(rootDir) {
147
161
  for (const t of asset.triggers)
148
162
  addToIndex(registry.byTrigger, t, asset.id);
149
163
  addToIndex(registry.byStage, asset.stage, asset.id);
150
- if (asset.extra.owner_mechanism)
151
- addToIndex(registry.byMechanism, String(asset.extra.owner_mechanism), asset.id);
164
+ const ownerMech = getOwnerMechanism(asset.extra);
165
+ if (ownerMech)
166
+ addToIndex(registry.byMechanism, ownerMech, asset.id);
152
167
  addToIndex(registry.bySync, asset.sync_policy, asset.id);
153
168
  addToIndex(registry.byStatus, asset.status, asset.id);
154
169
  }
@@ -230,11 +245,11 @@ function isSimilarId(a, b) {
230
245
  */
231
246
  export function auditRegistry(reg) {
232
247
  const all = [...reg.byId.values()];
233
- const orphans = all.filter((a) => !a.extra.owner_mechanism);
248
+ const orphans = all.filter((a) => !getOwnerMechanism(a.extra));
234
249
  // 僵尸:无 triggers + 无 check + 无 owner_mechanism(三条注入/校验/归属路径全空=永不命中。
235
250
  // artifact 是被动消费的产物模板,triggers 空正常,豁免。
236
251
  // 有 owner_mechanism 的资产通过机制消费,不算僵尸。)
237
- const zombies = all.filter((a) => a.extra.type !== "artifact" && a.triggers.length === 0 && !a.check && !a.extra.owner_mechanism);
252
+ const zombies = all.filter((a) => a.extra.type !== "artifact" && a.triggers.length === 0 && !a.check && !getOwnerMechanism(a.extra));
238
253
  // 重叠:同 kind 下两两相似
239
254
  const overlaps = [];
240
255
  const byKind = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"derived_registry.js","sourceRoot":"","sources":["../../../src/domain/asset_registry/derived_registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"derived_registry.js","sourceRoot":"","sources":["../../../src/domain/asset_registry/derived_registry.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,8 @@ export interface AssetCheck {
33
33
  severity?: "error" | "warning" | "info";
34
34
  check_type?: "deterministic" | "semantic";
35
35
  evidence_required?: string[];
36
+ /** 目标产物(document_structure 专用:模版名或 path_pattern,用于 per-产物路由 + executor 定位产物文件) */
37
+ required_artifact?: string;
36
38
  }
37
39
  /** 派生资产:归零重构后的字段 */
38
40
  export interface DerivedAsset {
@@ -54,8 +56,10 @@ export interface DerivedAsset {
54
56
  status: AssetStatus;
55
57
  /** AI 自评清单显示名 */
56
58
  title?: string;
57
- /** 相对 templates/ 的路径 */
59
+ /** 相对扫描根的路径(内置=相对 templates/,用户=相对用户目录) */
58
60
  path: string;
61
+ /** 绝对路径(executor 定位规则文件用,用户资产必需,内置可为空) */
62
+ absPath?: string;
59
63
  /** 正文 */
60
64
  content: string;
61
65
  /** 旧 frontmatter 所有字段完整保留(含 type/subtype/owner_mechanism 等) */
@@ -1 +1 @@
1
- {"version":3,"file":"derived_types.d.ts","sourceRoot":"","sources":["../../../src/domain/asset_registry/derived_types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"derived_types.d.ts","sourceRoot":"","sources":["../../../src/domain/asset_registry/derived_types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../src/domain/build/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,YAAY;AACZ,eAAO,MAAM,aAAa,EAAE,cAgC3B,CAAC"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../src/domain/build/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,YAAY;AACZ,eAAO,MAAM,aAAa,EAAE,cA2B3B,CAAC"}
@@ -24,11 +24,11 @@ export const buildContract = {
24
24
  template: "",
25
25
  },
26
26
  {
27
- kind: "config",
28
- path_pattern: "config/",
27
+ kind: "test_plan",
28
+ path_pattern: "docs/build/测试计划.md",
29
29
  required: false,
30
30
  gate: "build-gate",
31
- template: "",
31
+ template: "测试计划.md",
32
32
  },
33
33
  ],
34
34
  requires_upstream: [
@@ -37,11 +37,6 @@ export const buildContract = {
37
37
  artifact_kind: "design_doc",
38
38
  condition: "always",
39
39
  },
40
- {
41
- from_domain: "design",
42
- artifact_kind: "current_system_analysis",
43
- condition: "brownfield",
44
- },
45
40
  ],
46
41
  entry_triggers: ["写代码", "实现", "编码", "改bug", "修bug", "修复", "开发", "重构"],
47
42
  };
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../src/domain/build/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,YAAY;AACZ,MAAM,CAAC,MAAM,aAAa,GAAmB;IAC3C,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,SAAS;IACtB,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,MAAM;YACpB,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,EAAE;SACb;QACD;YACE,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,SAAS;YACvB,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,EAAE;SACb;KACF;IACD,iBAAiB,EAAE;QACjB;YACE,WAAW,EAAE,QAAQ;YACrB,aAAa,EAAE,YAAY;YAC3B,SAAS,EAAE,QAAQ;SACpB;QACD;YACE,WAAW,EAAE,QAAQ;YACrB,aAAa,EAAE,yBAAyB;YACxC,SAAS,EAAE,YAAY;SACxB;KACF;IACD,cAAc,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;CACtE,CAAC"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../src/domain/build/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,YAAY;AACZ,MAAM,CAAC,MAAM,aAAa,GAAmB;IAC3C,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,SAAS;IACtB,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,MAAM;YACpB,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,EAAE;SACb;QACD;YACE,IAAI,EAAE,WAAW;YACjB,YAAY,EAAE,oBAAoB;YAClC,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,SAAS;SACpB;KACF;IACD,iBAAiB,EAAE;QACjB;YACE,WAAW,EAAE,QAAQ;YACrB,aAAa,EAAE,YAAY;YAC3B,SAAS,EAAE,QAAQ;SACpB;KACF;IACD,cAAc,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;CACtE,CAAC"}
@@ -11,7 +11,7 @@
11
11
  * 数据流:TaskContext → observe: DerivedState / act: ActResult
12
12
  * 持久化:无(act 只组装 prompt)
13
13
  */
14
- import type { DerivedState } from "../../core/types.js";
14
+ import type { DerivedState, DomainContract } from "../../core/types.js";
15
15
  import type { TaskContext } from "../../types/index.js";
16
16
  import type { IDomainEngine, ActResult } from "../types.js";
17
17
  import type { Observer } from "../../core/observer.js";
@@ -19,7 +19,8 @@ import type { Observer } from "../../core/observer.js";
19
19
  export declare class BuildEngine implements IDomainEngine {
20
20
  private readonly observer;
21
21
  private readonly projectRoot;
22
- readonly contract: import("../../core/types.js").DomainContract;
22
+ /** contract 动态合并用户 artifact produces */
23
+ get contract(): DomainContract;
23
24
  constructor(observer: Observer, projectRoot: string);
24
25
  observe(task: TaskContext): Promise<DerivedState>;
25
26
  act(task: TaskContext, target: string, upstream: Record<string, string>, feedback?: string): Promise<ActResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/domain/build/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAQvD,YAAY;AACZ,qBAAa,WAAY,YAAW,aAAa;IAI7C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAJ9B,QAAQ,CAAC,QAAQ,+CAAiB;gBAGf,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM;IAGhC,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAIjD,GAAG,CACP,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,SAAS,CAAC;CA+BtB"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/domain/build/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AASvD,YAAY;AACZ,qBAAa,WAAY,YAAW,aAAa;IAO7C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAP9B,wCAAwC;IACxC,IAAI,QAAQ,IAAI,cAAc,CAE7B;gBAGkB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM;IAGhC,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAIjD,GAAG,CACP,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,SAAS,CAAC;CA+BtB"}
@@ -12,12 +12,15 @@
12
12
  * 持久化:无(act 只组装 prompt)
13
13
  */
14
14
  import { buildContract } from "./contract.js";
15
- import { loadArtifactTemplate, formatUpstream, buildArtifactPrompt, } from "../engine_helpers.js";
15
+ import { loadArtifactTemplate, formatUpstream, buildArtifactPrompt, getExtendedContract, } from "../engine_helpers.js";
16
16
  /** 构建域引擎 */
17
17
  export class BuildEngine {
18
18
  observer;
19
19
  projectRoot;
20
- contract = buildContract;
20
+ /** contract 动态合并用户 artifact produces */
21
+ get contract() {
22
+ return getExtendedContract(buildContract, this.projectRoot);
23
+ }
21
24
  constructor(observer, projectRoot) {
22
25
  this.observer = observer;
23
26
  this.projectRoot = projectRoot;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/domain/build/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,YAAY;AACZ,MAAM,OAAO,WAAW;IAIH;IACA;IAJV,QAAQ,GAAG,aAAa,CAAC;IAElC,YACmB,QAAkB,EAClB,WAAmB;QADnB,aAAQ,GAAR,QAAQ,CAAU;QAClB,gBAAW,GAAX,WAAW,CAAQ;IACnC,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,IAAiB;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,GAAG,CACP,IAAiB,EACjB,MAAc,EACd,QAAgC,EAChC,QAAiB;QAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,SAAS,MAAM,WAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpG,CAAC;QAED,MAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtG,MAAM,eAAe,GAAG,EAAE,CAAC,CAAC,wCAAwC;QAEpE,8BAA8B;QAC9B,MAAM,MAAM,GAAG,mBAAmB,CAChC,IAAI,CAAC,MAAM,EACX,QAAQ,EACR;YACE,eAAe;YACf,eAAe,EAAE,cAAc,CAAC,QAAQ,CAAC;YACzC,eAAe;SAChB,EACD,mBAAmB,QAAQ,CAAC,IAAI,wDAAwD,EACxF,QAAQ,CACT,CAAC;QAEF,OAAO;YACL,MAAM;YACN,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,KAAK,EAAE;gBACL,aAAa,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;gBAClC,eAAe,EAAE,CAAC,OAAO,CAAC;aAC3B;SACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/domain/build/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,YAAY;AACZ,MAAM,OAAO,WAAW;IAOH;IACA;IAPnB,wCAAwC;IACxC,IAAI,QAAQ;QACV,OAAO,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9D,CAAC;IAED,YACmB,QAAkB,EAClB,WAAmB;QADnB,aAAQ,GAAR,QAAQ,CAAU;QAClB,gBAAW,GAAX,WAAW,CAAQ;IACnC,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,IAAiB;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,GAAG,CACP,IAAiB,EACjB,MAAc,EACd,QAAgC,EAChC,QAAiB;QAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,SAAS,MAAM,WAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpG,CAAC;QAED,MAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtG,MAAM,eAAe,GAAG,EAAE,CAAC,CAAC,wCAAwC;QAEpE,8BAA8B;QAC9B,MAAM,MAAM,GAAG,mBAAmB,CAChC,IAAI,CAAC,MAAM,EACX,QAAQ,EACR;YACE,eAAe;YACf,eAAe,EAAE,cAAc,CAAC,QAAQ,CAAC;YACzC,eAAe;SAChB,EACD,mBAAmB,QAAQ,CAAC,IAAI,wDAAwD,EACxF,QAAQ,CACT,CAAC;QAEF,OAAO;YACL,MAAM;YACN,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,KAAK,EAAE;gBACL,aAAa,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;gBAClC,eAAe,EAAE,CAAC,OAAO,CAAC;aAC3B;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../src/domain/design/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,YAAY;AACZ,eAAO,MAAM,cAAc,EAAE,cAgE5B,CAAC"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../src/domain/design/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,YAAY;AACZ,eAAO,MAAM,cAAc,EAAE,cAmC5B,CAAC"}
@@ -23,14 +23,6 @@ export const designContract = {
23
23
  gate: "design-gate",
24
24
  template: "需求分析.md",
25
25
  },
26
- {
27
- kind: "current_system_analysis",
28
- path_pattern: "docs/existing-system/现有系统分析.md",
29
- required: false,
30
- gate: "design-gate",
31
- template: "迁移评估.md",
32
- tech_stack_filter: ["brownfield"],
33
- },
34
26
  {
35
27
  kind: "design_doc",
36
28
  path_pattern: "docs/architecture/01-架构设计文档.md",
@@ -38,38 +30,17 @@ export const designContract = {
38
30
  gate: "design-gate",
39
31
  template: "架构设计.md",
40
32
  },
41
- {
42
- kind: "detailed_design",
43
- path_pattern: "docs/design/03-详细设计文档.md",
44
- required: false,
45
- gate: "design-gate",
46
- template: "详细设计.md",
47
- },
48
- {
49
- kind: "task_plan",
50
- path_pattern: "docs/architecture/02-开发切片计划.md",
51
- required: false,
52
- gate: "design-gate",
53
- template: "切片计划.md",
54
- },
55
- {
56
- kind: "architecture_decision",
57
- path_pattern: "docs/architecture/00-架构决策记录.md",
58
- required: true,
59
- gate: "design-gate",
60
- template: "架构决策记录.md",
61
- },
62
33
  {
63
34
  kind: "database_design",
64
35
  path_pattern: "docs/design/01-数据库设计文档.md",
65
- required: true,
36
+ required: false,
66
37
  gate: "design-gate",
67
38
  template: "数据库设计文档.md",
68
39
  },
69
40
  {
70
41
  kind: "api_specification",
71
42
  path_pattern: "docs/design/02-API接口规格文档.md",
72
- required: true,
43
+ required: false,
73
44
  gate: "design-gate",
74
45
  template: "API接口规格文档.md",
75
46
  },