soloforge 1.1.37 → 1.1.40

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 (1141) hide show
  1. package/CHANGELOG.md +149 -149
  2. package/README.md +77 -53
  3. package/dist/adapters/claude_code/claude_md.js +2 -2
  4. package/dist/adapters/claude_code/claude_md.js.map +1 -1
  5. package/dist/adapters/codex/codex_rules.js +1 -1
  6. package/dist/adapters/codex/codex_rules.js.map +1 -1
  7. package/dist/adapters/shared/workflow_template.js +1 -1
  8. package/dist/adapters/trae/trae_rules.js +1 -1
  9. package/dist/adapters/trae/trae_rules.js.map +1 -1
  10. package/dist/bin/commands/analyze.d.ts +7 -0
  11. package/dist/bin/commands/analyze.d.ts.map +1 -0
  12. package/dist/bin/commands/analyze.js +52 -0
  13. package/dist/bin/commands/analyze.js.map +1 -0
  14. package/dist/bin/commands/audit.d.ts.map +1 -1
  15. package/dist/bin/commands/audit.js +105 -84
  16. package/dist/bin/commands/audit.js.map +1 -1
  17. package/dist/bin/commands/check_bash.d.ts.map +1 -1
  18. package/dist/bin/commands/check_bash.js +48 -10
  19. package/dist/bin/commands/check_bash.js.map +1 -1
  20. package/dist/bin/commands/check_write.d.ts +9 -0
  21. package/dist/bin/commands/check_write.d.ts.map +1 -1
  22. package/dist/bin/commands/check_write.js +168 -11
  23. package/dist/bin/commands/check_write.js.map +1 -1
  24. package/dist/bin/commands/init.d.ts +2 -5
  25. package/dist/bin/commands/init.d.ts.map +1 -1
  26. package/dist/bin/commands/init.js +116 -137
  27. package/dist/bin/commands/init.js.map +1 -1
  28. package/dist/bin/commands/modify.d.ts +7 -0
  29. package/dist/bin/commands/modify.d.ts.map +1 -0
  30. package/dist/bin/commands/modify.js +74 -0
  31. package/dist/bin/commands/modify.js.map +1 -0
  32. package/dist/bin/commands/reasoning.d.ts +14 -0
  33. package/dist/bin/commands/reasoning.d.ts.map +1 -0
  34. package/dist/bin/commands/reasoning.js +158 -0
  35. package/dist/bin/commands/reasoning.js.map +1 -0
  36. package/dist/bin/commands/review.d.ts +7 -0
  37. package/dist/bin/commands/review.d.ts.map +1 -0
  38. package/dist/bin/commands/review.js +79 -0
  39. package/dist/bin/commands/review.js.map +1 -0
  40. package/dist/bin/commands/status.d.ts +6 -5
  41. package/dist/bin/commands/status.d.ts.map +1 -1
  42. package/dist/bin/commands/status.js +63 -120
  43. package/dist/bin/commands/status.js.map +1 -1
  44. package/dist/bin/commands/sync.d.ts +1 -1
  45. package/dist/bin/commands/sync.js +10 -10
  46. package/dist/bin/commands/sync.js.map +1 -1
  47. package/dist/bin/commands/validate.d.ts +4 -1
  48. package/dist/bin/commands/validate.d.ts.map +1 -1
  49. package/dist/bin/commands/validate.js +88 -99
  50. package/dist/bin/commands/validate.js.map +1 -1
  51. package/dist/bin/config_commands.d.ts +21 -20
  52. package/dist/bin/config_commands.d.ts.map +1 -1
  53. package/dist/bin/config_commands.js +209 -236
  54. package/dist/bin/config_commands.js.map +1 -1
  55. package/dist/bin/soloforge.js +60 -22
  56. package/dist/bin/soloforge.js.map +1 -1
  57. package/dist/engine/adapter_prompt_contract.d.ts +1 -1
  58. package/dist/engine/adapter_prompt_contract.d.ts.map +1 -1
  59. package/dist/engine/adapter_prompt_contract.js +1 -1
  60. package/dist/engine/adapter_prompt_contract.js.map +1 -1
  61. package/dist/engine/audit/audit_sampler.d.ts +1 -1
  62. package/dist/engine/audit/confidence_scorer.d.ts +16 -0
  63. package/dist/engine/audit/confidence_scorer.d.ts.map +1 -1
  64. package/dist/engine/audit/confidence_scorer.js +19 -0
  65. package/dist/engine/audit/confidence_scorer.js.map +1 -1
  66. package/dist/engine/audit/core_engineering_principles.d.ts +4 -4
  67. package/dist/engine/audit/core_engineering_principles.d.ts.map +1 -1
  68. package/dist/engine/audit/core_engineering_principles.js +18 -21
  69. package/dist/engine/audit/core_engineering_principles.js.map +1 -1
  70. package/dist/engine/audit/core_experience_principle.js +3 -3
  71. package/dist/engine/audit/core_experience_principle.js.map +1 -1
  72. package/dist/engine/audit/debt_reporter.d.ts +1 -1
  73. package/dist/engine/audit/debugger.d.ts +1 -1
  74. package/dist/engine/audit/delivery_readiness.d.ts +2 -2
  75. package/dist/engine/audit/delivery_readiness.js +2 -2
  76. package/dist/engine/audit/diagnostic_registry.js +4 -4
  77. package/dist/engine/audit/diagnostic_registry.js.map +1 -1
  78. package/dist/engine/audit/evolver.d.ts.map +1 -1
  79. package/dist/engine/audit/evolver.js +0 -2
  80. package/dist/engine/audit/evolver.js.map +1 -1
  81. package/dist/engine/audit/governance_report.d.ts +9 -8
  82. package/dist/engine/audit/governance_report.d.ts.map +1 -1
  83. package/dist/engine/audit/governance_report.js +17 -16
  84. package/dist/engine/audit/governance_report.js.map +1 -1
  85. package/dist/engine/audit/observability.d.ts +1 -1
  86. package/dist/engine/audit/observability.js +1 -1
  87. package/dist/engine/audit/risk_sampler.d.ts +1 -1
  88. package/dist/engine/audit/risk_sampler.js +1 -1
  89. package/dist/engine/audit/semantic_evidence.d.ts +1 -1
  90. package/dist/engine/audit/semantic_evidence.js +1 -1
  91. package/dist/engine/audit/test_generator.js +1 -1
  92. package/dist/engine/audit/test_quality.d.ts +1 -1
  93. package/dist/engine/audit/test_quality.js +1 -1
  94. package/dist/engine/change_coordinator.d.ts.map +1 -1
  95. package/dist/engine/change_coordinator.js +1 -4
  96. package/dist/engine/change_coordinator.js.map +1 -1
  97. package/dist/engine/config/conflicts.d.ts +39 -0
  98. package/dist/engine/config/conflicts.d.ts.map +1 -0
  99. package/dist/engine/config/conflicts.js +79 -0
  100. package/dist/engine/config/conflicts.js.map +1 -0
  101. package/dist/engine/config/detector/blueprint.d.ts +25 -0
  102. package/dist/engine/config/detector/blueprint.d.ts.map +1 -0
  103. package/dist/engine/config/detector/blueprint.js +47 -0
  104. package/dist/engine/config/detector/blueprint.js.map +1 -0
  105. package/dist/engine/config/detector/fingerprint.d.ts +67 -0
  106. package/dist/engine/config/detector/fingerprint.d.ts.map +1 -0
  107. package/dist/engine/config/detector/fingerprint.js +160 -0
  108. package/dist/engine/config/detector/fingerprint.js.map +1 -0
  109. package/dist/engine/config/detector/framework_map.d.ts +89 -0
  110. package/dist/engine/config/detector/framework_map.d.ts.map +1 -0
  111. package/dist/engine/config/detector/framework_map.js +406 -0
  112. package/dist/engine/config/detector/framework_map.js.map +1 -0
  113. package/dist/engine/config/detector/index.d.ts +12 -0
  114. package/dist/engine/config/detector/index.d.ts.map +1 -0
  115. package/dist/engine/config/detector/index.js +12 -0
  116. package/dist/engine/config/detector/index.js.map +1 -0
  117. package/dist/engine/config/detector/verify.d.ts +32 -0
  118. package/dist/engine/config/detector/verify.d.ts.map +1 -0
  119. package/dist/engine/config/detector/verify.js +107 -0
  120. package/dist/engine/config/detector/verify.js.map +1 -0
  121. package/dist/engine/config/intent.d.ts +26 -0
  122. package/dist/engine/config/intent.d.ts.map +1 -0
  123. package/dist/engine/config/intent.js +81 -0
  124. package/dist/engine/config/intent.js.map +1 -0
  125. package/dist/engine/config/intent_schema.d.ts +873 -0
  126. package/dist/engine/config/intent_schema.d.ts.map +1 -0
  127. package/dist/engine/config/intent_schema.js +98 -0
  128. package/dist/engine/config/intent_schema.js.map +1 -0
  129. package/dist/engine/config/regression_matrix.d.ts.map +1 -1
  130. package/dist/engine/config/regression_matrix.js +28 -49
  131. package/dist/engine/config/regression_matrix.js.map +1 -1
  132. package/dist/engine/config/resolver.d.ts +136 -0
  133. package/dist/engine/config/resolver.d.ts.map +1 -0
  134. package/dist/engine/config/resolver.js +251 -0
  135. package/dist/engine/config/resolver.js.map +1 -0
  136. package/dist/engine/context_engine/bootstrap.d.ts +12 -0
  137. package/dist/engine/context_engine/bootstrap.d.ts.map +1 -0
  138. package/dist/engine/context_engine/bootstrap.js +28 -0
  139. package/dist/engine/context_engine/bootstrap.js.map +1 -0
  140. package/dist/engine/context_engine/companion_injector.d.ts +49 -0
  141. package/dist/engine/context_engine/companion_injector.d.ts.map +1 -0
  142. package/dist/engine/context_engine/companion_injector.js +157 -0
  143. package/dist/engine/context_engine/companion_injector.js.map +1 -0
  144. package/dist/engine/context_engine/context_resolver.d.ts +46 -0
  145. package/dist/engine/context_engine/context_resolver.d.ts.map +1 -0
  146. package/dist/engine/context_engine/context_resolver.js +139 -0
  147. package/dist/engine/context_engine/context_resolver.js.map +1 -0
  148. package/dist/engine/context_engine/index.d.ts +25 -0
  149. package/dist/engine/context_engine/index.d.ts.map +1 -0
  150. package/dist/engine/context_engine/index.js +25 -0
  151. package/dist/engine/context_engine/index.js.map +1 -0
  152. package/dist/engine/context_engine/view_registry.d.ts +45 -0
  153. package/dist/engine/context_engine/view_registry.d.ts.map +1 -0
  154. package/dist/engine/context_engine/view_registry.js +36 -0
  155. package/dist/engine/context_engine/view_registry.js.map +1 -0
  156. package/dist/engine/context_engine/views/change_impact.d.ts +34 -0
  157. package/dist/engine/context_engine/views/change_impact.d.ts.map +1 -0
  158. package/dist/engine/context_engine/views/change_impact.js +288 -0
  159. package/dist/engine/context_engine/views/change_impact.js.map +1 -0
  160. package/dist/engine/context_engine/views/coverage_gap.d.ts +45 -0
  161. package/dist/engine/context_engine/views/coverage_gap.d.ts.map +1 -0
  162. package/dist/engine/context_engine/views/coverage_gap.js +238 -0
  163. package/dist/engine/context_engine/views/coverage_gap.js.map +1 -0
  164. package/dist/engine/context_engine/views/dependency_graph.d.ts +45 -0
  165. package/dist/engine/context_engine/views/dependency_graph.d.ts.map +1 -0
  166. package/dist/engine/context_engine/views/dependency_graph.js +358 -0
  167. package/dist/engine/context_engine/views/dependency_graph.js.map +1 -0
  168. package/dist/engine/context_engine/views/file_impact.d.ts +46 -0
  169. package/dist/engine/context_engine/views/file_impact.d.ts.map +1 -0
  170. package/dist/engine/context_engine/views/file_impact.js +181 -0
  171. package/dist/engine/context_engine/views/file_impact.js.map +1 -0
  172. package/dist/engine/context_engine/views/knowledge_ref.d.ts +37 -0
  173. package/dist/engine/context_engine/views/knowledge_ref.d.ts.map +1 -0
  174. package/dist/engine/context_engine/views/knowledge_ref.js +264 -0
  175. package/dist/engine/context_engine/views/knowledge_ref.js.map +1 -0
  176. package/dist/engine/context_engine/views/reference_trace.d.ts +49 -0
  177. package/dist/engine/context_engine/views/reference_trace.d.ts.map +1 -0
  178. package/dist/engine/context_engine/views/reference_trace.js +227 -0
  179. package/dist/engine/context_engine/views/reference_trace.js.map +1 -0
  180. package/dist/engine/contracts/architecture_decision_workshop.d.ts +1 -1
  181. package/dist/engine/contracts/architecture_decision_workshop.js +1 -1
  182. package/dist/engine/contracts/artifact_schema_registry.d.ts +2 -0
  183. package/dist/engine/contracts/artifact_schema_registry.d.ts.map +1 -1
  184. package/dist/engine/contracts/artifact_schema_registry.js +31 -1
  185. package/dist/engine/contracts/artifact_schema_registry.js.map +1 -1
  186. package/dist/engine/contracts/capability_registry.d.ts.map +1 -1
  187. package/dist/engine/contracts/capability_registry.js +6 -33
  188. package/dist/engine/contracts/capability_registry.js.map +1 -1
  189. package/dist/engine/contracts/code_maintainability_observability_contract.js +2 -2
  190. package/dist/engine/contracts/code_maintainability_observability_contract.js.map +1 -1
  191. package/dist/engine/contracts/command_execution_contract.d.ts +1 -1
  192. package/dist/engine/contracts/command_execution_contract.js +3 -3
  193. package/dist/engine/contracts/command_execution_contract.js.map +1 -1
  194. package/dist/engine/contracts/contract_guard.js +8 -0
  195. package/dist/engine/contracts/contract_guard.js.map +1 -1
  196. package/dist/engine/contracts/contract_registry/builtin_contracts_core.d.ts.map +1 -1
  197. package/dist/engine/contracts/contract_registry/builtin_contracts_core.js +13 -31
  198. package/dist/engine/contracts/contract_registry/builtin_contracts_core.js.map +1 -1
  199. package/dist/engine/contracts/control_plane_contract.d.ts.map +1 -1
  200. package/dist/engine/contracts/control_plane_contract.js +27 -13
  201. package/dist/engine/contracts/control_plane_contract.js.map +1 -1
  202. package/dist/engine/contracts/decision_contract.d.ts +1 -1
  203. package/dist/engine/contracts/decision_contract.js +1 -1
  204. package/dist/engine/contracts/decision_workshop.d.ts +1 -3
  205. package/dist/engine/contracts/decision_workshop.d.ts.map +1 -1
  206. package/dist/engine/contracts/decision_workshop.js.map +1 -1
  207. package/dist/engine/contracts/design_lifecycle_contract.d.ts +2 -2
  208. package/dist/engine/contracts/design_lifecycle_contract.d.ts.map +1 -1
  209. package/dist/engine/contracts/design_lifecycle_contract.js +26 -20
  210. package/dist/engine/contracts/design_lifecycle_contract.js.map +1 -1
  211. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit.js +11 -11
  212. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit.js.map +1 -1
  213. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit_tail.d.ts.map +1 -1
  214. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit_tail.js +2 -39
  215. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit_tail.js.map +1 -1
  216. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_core.d.ts.map +1 -1
  217. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_core.js +68 -28
  218. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_core.js.map +1 -1
  219. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_extension.js +11 -11
  220. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_extension.js.map +1 -1
  221. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_governance.js +10 -10
  222. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_governance.js.map +1 -1
  223. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_infra.d.ts.map +1 -1
  224. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_infra.js +8 -84
  225. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_infra.js.map +1 -1
  226. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_platform.js +18 -18
  227. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_platform.js.map +1 -1
  228. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_release.js +12 -12
  229. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_release.js.map +1 -1
  230. package/dist/engine/contracts/dual_layer_mechanism_registry/shared.js +3 -3
  231. package/dist/engine/contracts/dual_layer_mechanism_registry/shared.js.map +1 -1
  232. package/dist/engine/contracts/dual_layer_mechanism_registry/validation.d.ts.map +1 -1
  233. package/dist/engine/contracts/dual_layer_mechanism_registry/validation.js +4 -3
  234. package/dist/engine/contracts/dual_layer_mechanism_registry/validation.js.map +1 -1
  235. package/dist/engine/contracts/enforcement_guard.d.ts +1 -1
  236. package/dist/engine/contracts/enforcement_guard.js +3 -3
  237. package/dist/engine/contracts/enforcement_guard.js.map +1 -1
  238. package/dist/engine/contracts/error_path_verifier.js +2 -2
  239. package/dist/engine/contracts/error_path_verifier.js.map +1 -1
  240. package/dist/engine/contracts/evolution_regression_gate.d.ts +1 -1
  241. package/dist/engine/contracts/evolution_regression_gate.js +1 -1
  242. package/dist/engine/contracts/first_principles.d.ts +47 -0
  243. package/dist/engine/contracts/first_principles.d.ts.map +1 -1
  244. package/dist/engine/contracts/first_principles.js +56 -0
  245. package/dist/engine/contracts/first_principles.js.map +1 -1
  246. package/dist/engine/contracts/instruction_contract.js +1 -1
  247. package/dist/engine/contracts/instruction_contract.js.map +1 -1
  248. package/dist/engine/contracts/lifecycle_knowledge_contract.d.ts +2 -2
  249. package/dist/engine/contracts/lifecycle_knowledge_contract.d.ts.map +1 -1
  250. package/dist/engine/contracts/lifecycle_knowledge_contract.js +10 -10
  251. package/dist/engine/contracts/lifecycle_knowledge_contract.js.map +1 -1
  252. package/dist/engine/contracts/mechanism_contract_registry/contracts-audit.d.ts +1 -1
  253. package/dist/engine/contracts/mechanism_contract_registry/contracts-audit.d.ts.map +1 -1
  254. package/dist/engine/contracts/mechanism_contract_registry/contracts-audit.js +20 -36
  255. package/dist/engine/contracts/mechanism_contract_registry/contracts-audit.js.map +1 -1
  256. package/dist/engine/contracts/mechanism_contract_registry/contracts-governance.js +30 -30
  257. package/dist/engine/contracts/mechanism_contract_registry/contracts-governance.js.map +1 -1
  258. package/dist/engine/contracts/mechanism_contract_registry/contracts-pipeline.d.ts +3 -2
  259. package/dist/engine/contracts/mechanism_contract_registry/contracts-pipeline.d.ts.map +1 -1
  260. package/dist/engine/contracts/mechanism_contract_registry/contracts-pipeline.js +75 -52
  261. package/dist/engine/contracts/mechanism_contract_registry/contracts-pipeline.js.map +1 -1
  262. package/dist/engine/contracts/mechanism_contract_registry/contracts-platform.d.ts +2 -2
  263. package/dist/engine/contracts/mechanism_contract_registry/contracts-platform.d.ts.map +1 -1
  264. package/dist/engine/contracts/mechanism_contract_registry/contracts-platform.js +23 -61
  265. package/dist/engine/contracts/mechanism_contract_registry/contracts-platform.js.map +1 -1
  266. package/dist/engine/contracts/mechanism_health_check.d.ts +1 -1
  267. package/dist/engine/contracts/mechanism_health_check.js +1 -1
  268. package/dist/engine/contracts/omission_scanner.d.ts +1 -1
  269. package/dist/engine/contracts/omission_scanner.js +1 -1
  270. package/dist/engine/contracts/platform_context.d.ts +1 -1
  271. package/dist/engine/contracts/platform_context.js +1 -1
  272. package/dist/engine/contracts/project_knowledge_contract.d.ts +3 -2
  273. package/dist/engine/contracts/project_knowledge_contract.d.ts.map +1 -1
  274. package/dist/engine/contracts/project_knowledge_contract.js +8 -7
  275. package/dist/engine/contracts/project_knowledge_contract.js.map +1 -1
  276. package/dist/engine/contracts/slice_fix_loop.d.ts +86 -0
  277. package/dist/engine/contracts/slice_fix_loop.d.ts.map +1 -0
  278. package/dist/engine/contracts/slice_fix_loop.js +98 -0
  279. package/dist/engine/contracts/slice_fix_loop.js.map +1 -0
  280. package/dist/engine/contracts/state_machine_contracts.d.ts +17 -0
  281. package/dist/engine/contracts/state_machine_contracts.d.ts.map +1 -0
  282. package/dist/engine/contracts/state_machine_contracts.js +97 -0
  283. package/dist/engine/contracts/state_machine_contracts.js.map +1 -0
  284. package/dist/engine/contracts/technology_decision.d.ts +18 -0
  285. package/dist/engine/contracts/technology_decision.d.ts.map +1 -1
  286. package/dist/engine/contracts/technology_decision.js +38 -0
  287. package/dist/engine/contracts/technology_decision.js.map +1 -1
  288. package/dist/engine/contracts/tool_invocation_contract_registry.d.ts +2 -3
  289. package/dist/engine/contracts/tool_invocation_contract_registry.d.ts.map +1 -1
  290. package/dist/engine/contracts/tool_invocation_contract_registry.js +205 -186
  291. package/dist/engine/contracts/tool_invocation_contract_registry.js.map +1 -1
  292. package/dist/engine/contracts/user_feedback_contract.d.ts +1 -1
  293. package/dist/engine/contracts/user_feedback_contract.d.ts.map +1 -1
  294. package/dist/engine/contracts/user_feedback_contract.js +6 -9
  295. package/dist/engine/contracts/user_feedback_contract.js.map +1 -1
  296. package/dist/engine/contracts/user_promise.js +2 -2
  297. package/dist/engine/contracts/user_promise.js.map +1 -1
  298. package/dist/engine/contracts/workflow_template_pack.d.ts +1 -1
  299. package/dist/engine/contracts/workflow_template_pack.js +5 -5
  300. package/dist/engine/contracts/workflow_template_pack.js.map +1 -1
  301. package/dist/engine/core/debug_log.d.ts +1 -1
  302. package/dist/engine/core/debug_log.js +1 -1
  303. package/dist/engine/core/errors.d.ts +1 -1
  304. package/dist/engine/core/errors.js +1 -1
  305. package/dist/engine/core/fail_closed.d.ts +39 -0
  306. package/dist/engine/core/fail_closed.d.ts.map +1 -0
  307. package/dist/engine/core/fail_closed.js +38 -0
  308. package/dist/engine/core/fail_closed.js.map +1 -0
  309. package/dist/engine/core/index.d.ts +3 -1
  310. package/dist/engine/core/index.d.ts.map +1 -1
  311. package/dist/engine/core/index.js +3 -1
  312. package/dist/engine/core/index.js.map +1 -1
  313. package/dist/engine/core/paths.d.ts +6 -2
  314. package/dist/engine/core/paths.d.ts.map +1 -1
  315. package/dist/engine/core/paths.js +8 -2
  316. package/dist/engine/core/paths.js.map +1 -1
  317. package/dist/engine/dependency_scanner.js +1 -1
  318. package/dist/engine/dependency_scanner.js.map +1 -1
  319. package/dist/engine/exploration.js +1 -1
  320. package/dist/engine/exploration.js.map +1 -1
  321. package/dist/engine/feasibility_checker.js +1 -1
  322. package/dist/engine/impact_analyzer.js +1 -1
  323. package/dist/engine/impact_analyzer.js.map +1 -1
  324. package/dist/engine/knowledge/knowledge_asset_audit.d.ts.map +1 -1
  325. package/dist/engine/knowledge/knowledge_asset_audit.js +3 -2
  326. package/dist/engine/knowledge/knowledge_asset_audit.js.map +1 -1
  327. package/dist/engine/knowledge/knowledge_asset_consumer.d.ts +28 -21
  328. package/dist/engine/knowledge/knowledge_asset_consumer.d.ts.map +1 -1
  329. package/dist/engine/knowledge/knowledge_asset_consumer.js +32 -27
  330. package/dist/engine/knowledge/knowledge_asset_consumer.js.map +1 -1
  331. package/dist/engine/knowledge/knowledge_asset_migration.js +1 -1
  332. package/dist/engine/knowledge/knowledge_asset_migration.js.map +1 -1
  333. package/dist/engine/knowledge/knowledge_asset_schema.d.ts +8 -3
  334. package/dist/engine/knowledge/knowledge_asset_schema.d.ts.map +1 -1
  335. package/dist/engine/knowledge/knowledge_asset_schema.js +25 -8
  336. package/dist/engine/knowledge/knowledge_asset_schema.js.map +1 -1
  337. package/dist/engine/knowledge/knowledge_consumption_snapshot.d.ts +3 -3
  338. package/dist/engine/knowledge/knowledge_consumption_snapshot.d.ts.map +1 -1
  339. package/dist/engine/knowledge/knowledge_consumption_snapshot.js +5 -5
  340. package/dist/engine/knowledge/knowledge_consumption_snapshot.js.map +1 -1
  341. package/dist/engine/knowledge/knowledge_health.d.ts.map +1 -1
  342. package/dist/engine/knowledge/knowledge_health.js +6 -4
  343. package/dist/engine/knowledge/knowledge_health.js.map +1 -1
  344. package/dist/engine/knowledge/knowledge_injection_boundary.d.ts +37 -5
  345. package/dist/engine/knowledge/knowledge_injection_boundary.d.ts.map +1 -1
  346. package/dist/engine/knowledge/knowledge_injection_boundary.js +107 -64
  347. package/dist/engine/knowledge/knowledge_injection_boundary.js.map +1 -1
  348. package/dist/engine/knowledge/knowledge_scenario_registry.js +1 -1
  349. package/dist/engine/knowledge/knowledge_scenario_registry.js.map +1 -1
  350. package/dist/engine/knowledge/knowledge_writer.js +3 -3
  351. package/dist/engine/knowledge/knowledge_writer.js.map +1 -1
  352. package/dist/engine/knowledge/language_policy.d.ts +2 -2
  353. package/dist/engine/knowledge/language_policy.js +2 -2
  354. package/dist/engine/onboarding.d.ts +1 -1
  355. package/dist/engine/onboarding.js +2 -2
  356. package/dist/engine/onboarding.js.map +1 -1
  357. package/dist/engine/pipeline/artifact_aliases.d.ts +19 -0
  358. package/dist/engine/pipeline/artifact_aliases.d.ts.map +1 -0
  359. package/dist/engine/pipeline/artifact_aliases.js +39 -0
  360. package/dist/engine/pipeline/artifact_aliases.js.map +1 -0
  361. package/dist/engine/pipeline/input_material_extractor.d.ts +1 -1
  362. package/dist/engine/pipeline/input_material_extractor.d.ts.map +1 -1
  363. package/dist/engine/pipeline/intent_expander/helpers.d.ts +15 -29
  364. package/dist/engine/pipeline/intent_expander/helpers.d.ts.map +1 -1
  365. package/dist/engine/pipeline/intent_expander/helpers.js +15 -158
  366. package/dist/engine/pipeline/intent_expander/helpers.js.map +1 -1
  367. package/dist/engine/pipeline/intent_expander/index.d.ts +1 -2
  368. package/dist/engine/pipeline/intent_expander/index.d.ts.map +1 -1
  369. package/dist/engine/pipeline/intent_expander/index.js +1 -3
  370. package/dist/engine/pipeline/intent_expander/index.js.map +1 -1
  371. package/dist/engine/pipeline/intent_expander/knowledge.d.ts +4 -13
  372. package/dist/engine/pipeline/intent_expander/knowledge.d.ts.map +1 -1
  373. package/dist/engine/pipeline/intent_expander/knowledge.js +7 -169
  374. package/dist/engine/pipeline/intent_expander/knowledge.js.map +1 -1
  375. package/dist/engine/pipeline/intent_expander/knowledge_resolution.d.ts +9 -7
  376. package/dist/engine/pipeline/intent_expander/knowledge_resolution.d.ts.map +1 -1
  377. package/dist/engine/pipeline/intent_expander/knowledge_resolution.js +85 -30
  378. package/dist/engine/pipeline/intent_expander/knowledge_resolution.js.map +1 -1
  379. package/dist/engine/pipeline/intent_expander/privacy_gates.d.ts +13 -100
  380. package/dist/engine/pipeline/intent_expander/privacy_gates.d.ts.map +1 -1
  381. package/dist/engine/pipeline/intent_expander/privacy_gates.js +18 -268
  382. package/dist/engine/pipeline/intent_expander/privacy_gates.js.map +1 -1
  383. package/dist/engine/pipeline/intent_expander/scope_acceptance.d.ts +11 -5
  384. package/dist/engine/pipeline/intent_expander/scope_acceptance.d.ts.map +1 -1
  385. package/dist/engine/pipeline/intent_expander/scope_acceptance.js +18 -32
  386. package/dist/engine/pipeline/intent_expander/scope_acceptance.js.map +1 -1
  387. package/dist/engine/pipeline/intent_expander/templates.d.ts +1 -1
  388. package/dist/engine/pipeline/intent_expander/templates.d.ts.map +1 -1
  389. package/dist/engine/pipeline/intent_expander/types.d.ts +1 -3
  390. package/dist/engine/pipeline/intent_expander/types.d.ts.map +1 -1
  391. package/dist/engine/pipeline/intent_expander.d.ts +5 -3
  392. package/dist/engine/pipeline/intent_expander.d.ts.map +1 -1
  393. package/dist/engine/pipeline/intent_expander.js +4 -3
  394. package/dist/engine/pipeline/intent_expander.js.map +1 -1
  395. package/dist/engine/pipeline/job_manager.d.ts +1 -1
  396. package/dist/engine/pipeline/job_manager.js +1 -1
  397. package/dist/engine/pipeline/prompt_template_resolver.d.ts +13 -0
  398. package/dist/engine/pipeline/prompt_template_resolver.d.ts.map +1 -0
  399. package/dist/engine/pipeline/prompt_template_resolver.js +25 -0
  400. package/dist/engine/pipeline/prompt_template_resolver.js.map +1 -0
  401. package/dist/engine/pipeline/rollback_router.d.ts +1 -1
  402. package/dist/engine/pipeline/rollback_router.d.ts.map +1 -1
  403. package/dist/engine/pipeline/scope_lease.d.ts.map +1 -1
  404. package/dist/engine/pipeline/scope_lease.js +1 -3
  405. package/dist/engine/pipeline/scope_lease.js.map +1 -1
  406. package/dist/engine/pipeline/scope_resolver.d.ts +9 -2
  407. package/dist/engine/pipeline/scope_resolver.d.ts.map +1 -1
  408. package/dist/engine/pipeline/scope_resolver.js +30 -16
  409. package/dist/engine/pipeline/scope_resolver.js.map +1 -1
  410. package/dist/engine/pipeline/slice_executor.d.ts +5 -1
  411. package/dist/engine/pipeline/slice_executor.d.ts.map +1 -1
  412. package/dist/engine/pipeline/slice_executor.js +4 -1
  413. package/dist/engine/pipeline/slice_executor.js.map +1 -1
  414. package/dist/engine/pipeline/state_machine/audit_logger.d.ts +42 -0
  415. package/dist/engine/pipeline/state_machine/audit_logger.d.ts.map +1 -0
  416. package/dist/engine/pipeline/state_machine/audit_logger.js +71 -0
  417. package/dist/engine/pipeline/state_machine/audit_logger.js.map +1 -0
  418. package/dist/engine/pipeline/state_machine/capability_safety_valve.d.ts +51 -0
  419. package/dist/engine/pipeline/state_machine/capability_safety_valve.d.ts.map +1 -0
  420. package/dist/engine/pipeline/state_machine/capability_safety_valve.js +131 -0
  421. package/dist/engine/pipeline/state_machine/capability_safety_valve.js.map +1 -0
  422. package/dist/engine/pipeline/state_machine/certainty_gate.d.ts +92 -0
  423. package/dist/engine/pipeline/state_machine/certainty_gate.d.ts.map +1 -0
  424. package/dist/engine/pipeline/state_machine/certainty_gate.js +391 -0
  425. package/dist/engine/pipeline/state_machine/certainty_gate.js.map +1 -0
  426. package/dist/engine/pipeline/state_machine/command_state_verifier.d.ts +50 -0
  427. package/dist/engine/pipeline/state_machine/command_state_verifier.d.ts.map +1 -0
  428. package/dist/engine/pipeline/state_machine/command_state_verifier.js +160 -0
  429. package/dist/engine/pipeline/state_machine/command_state_verifier.js.map +1 -0
  430. package/dist/engine/pipeline/state_machine/hook_classifier.d.ts +71 -0
  431. package/dist/engine/pipeline/state_machine/hook_classifier.d.ts.map +1 -0
  432. package/dist/engine/pipeline/state_machine/hook_classifier.js +146 -0
  433. package/dist/engine/pipeline/state_machine/hook_classifier.js.map +1 -0
  434. package/dist/engine/pipeline/state_machine/human_uncertainty_detector.d.ts +33 -0
  435. package/dist/engine/pipeline/state_machine/human_uncertainty_detector.d.ts.map +1 -0
  436. package/dist/engine/pipeline/state_machine/human_uncertainty_detector.js +72 -0
  437. package/dist/engine/pipeline/state_machine/human_uncertainty_detector.js.map +1 -0
  438. package/dist/engine/pipeline/state_machine/knowledge_stage_query.d.ts +21 -0
  439. package/dist/engine/pipeline/state_machine/knowledge_stage_query.d.ts.map +1 -0
  440. package/dist/engine/pipeline/state_machine/knowledge_stage_query.js +33 -0
  441. package/dist/engine/pipeline/state_machine/knowledge_stage_query.js.map +1 -0
  442. package/dist/engine/pipeline/state_machine/pipeline_state_machine.d.ts +158 -0
  443. package/dist/engine/pipeline/state_machine/pipeline_state_machine.d.ts.map +1 -0
  444. package/dist/engine/pipeline/state_machine/pipeline_state_machine.js +1197 -0
  445. package/dist/engine/pipeline/state_machine/pipeline_state_machine.js.map +1 -0
  446. package/dist/engine/pipeline/state_machine/risk_pattern_scanner.d.ts +34 -0
  447. package/dist/engine/pipeline/state_machine/risk_pattern_scanner.d.ts.map +1 -0
  448. package/dist/engine/pipeline/state_machine/risk_pattern_scanner.js +152 -0
  449. package/dist/engine/pipeline/state_machine/risk_pattern_scanner.js.map +1 -0
  450. package/dist/engine/pipeline/state_machine/route_usage_stats.d.ts +28 -0
  451. package/dist/engine/pipeline/state_machine/route_usage_stats.d.ts.map +1 -0
  452. package/dist/engine/pipeline/state_machine/route_usage_stats.js +76 -0
  453. package/dist/engine/pipeline/state_machine/route_usage_stats.js.map +1 -0
  454. package/dist/engine/pipeline/state_machine/sf_command_parser.d.ts +22 -0
  455. package/dist/engine/pipeline/state_machine/sf_command_parser.d.ts.map +1 -0
  456. package/dist/engine/pipeline/state_machine/sf_command_parser.js +171 -0
  457. package/dist/engine/pipeline/state_machine/sf_command_parser.js.map +1 -0
  458. package/dist/engine/pipeline/state_machine/stage_command_registry.d.ts +38 -0
  459. package/dist/engine/pipeline/state_machine/stage_command_registry.d.ts.map +1 -0
  460. package/dist/engine/pipeline/state_machine/stage_command_registry.js +218 -0
  461. package/dist/engine/pipeline/state_machine/stage_command_registry.js.map +1 -0
  462. package/dist/engine/pipeline/state_machine/stage_executor.d.ts +37 -0
  463. package/dist/engine/pipeline/state_machine/stage_executor.d.ts.map +1 -0
  464. package/dist/engine/pipeline/state_machine/stage_executor.js +67 -0
  465. package/dist/engine/pipeline/state_machine/stage_executor.js.map +1 -0
  466. package/dist/engine/pipeline/state_machine/state_migrator.d.ts +21 -0
  467. package/dist/engine/pipeline/state_machine/state_migrator.d.ts.map +1 -0
  468. package/dist/engine/pipeline/state_machine/state_migrator.js +130 -0
  469. package/dist/engine/pipeline/state_machine/state_migrator.js.map +1 -0
  470. package/dist/engine/pipeline/state_machine/state_self_diagnostic.d.ts +48 -0
  471. package/dist/engine/pipeline/state_machine/state_self_diagnostic.d.ts.map +1 -0
  472. package/dist/engine/pipeline/state_machine/state_self_diagnostic.js +566 -0
  473. package/dist/engine/pipeline/state_machine/state_self_diagnostic.js.map +1 -0
  474. package/dist/engine/pipeline/state_machine/static_route_table.d.ts +36 -0
  475. package/dist/engine/pipeline/state_machine/static_route_table.d.ts.map +1 -0
  476. package/dist/engine/pipeline/state_machine/static_route_table.js +112 -0
  477. package/dist/engine/pipeline/state_machine/static_route_table.js.map +1 -0
  478. package/dist/engine/pipeline/state_machine/strong_confirmation.d.ts +45 -0
  479. package/dist/engine/pipeline/state_machine/strong_confirmation.d.ts.map +1 -0
  480. package/dist/engine/pipeline/state_machine/strong_confirmation.js +57 -0
  481. package/dist/engine/pipeline/state_machine/strong_confirmation.js.map +1 -0
  482. package/dist/engine/pipeline/state_machine/uncertainty_bridge.d.ts +55 -0
  483. package/dist/engine/pipeline/state_machine/uncertainty_bridge.d.ts.map +1 -0
  484. package/dist/engine/pipeline/state_machine/uncertainty_bridge.js +48 -0
  485. package/dist/engine/pipeline/state_machine/uncertainty_bridge.js.map +1 -0
  486. package/dist/engine/pipeline/task_context/manager.d.ts +3 -3
  487. package/dist/engine/pipeline/task_context/manager.d.ts.map +1 -1
  488. package/dist/engine/pipeline/task_context/manager.js +59 -9
  489. package/dist/engine/pipeline/task_context/manager.js.map +1 -1
  490. package/dist/engine/pipeline/task_context/manager_setters.js +1 -1
  491. package/dist/engine/pipeline/task_context/manager_setters.js.map +1 -1
  492. package/dist/engine/pipeline/task_context/status_transitions.d.ts +7 -2
  493. package/dist/engine/pipeline/task_context/status_transitions.d.ts.map +1 -1
  494. package/dist/engine/pipeline/task_context/status_transitions.js +9 -14
  495. package/dist/engine/pipeline/task_context/status_transitions.js.map +1 -1
  496. package/dist/engine/pipeline/task_planner.d.ts.map +1 -1
  497. package/dist/engine/pipeline/task_planner.js +15 -9
  498. package/dist/engine/pipeline/task_planner.js.map +1 -1
  499. package/dist/engine/pipeline/task_stage_detector.d.ts +2 -0
  500. package/dist/engine/pipeline/task_stage_detector.d.ts.map +1 -1
  501. package/dist/engine/pipeline/task_stage_detector.js +23 -5
  502. package/dist/engine/pipeline/task_stage_detector.js.map +1 -1
  503. package/dist/engine/pipeline/workspace_lease.d.ts +1 -1
  504. package/dist/engine/pipeline/workspace_lease.js +1 -1
  505. package/dist/engine/pipeline/workspace_resumer.js +2 -2
  506. package/dist/engine/pipeline/workspace_resumer.js.map +1 -1
  507. package/dist/engine/release/foundation_scenario_registry.js +47 -47
  508. package/dist/engine/release/foundation_scenario_registry.js.map +1 -1
  509. package/dist/engine/release/foundation_scenario_runners.d.ts +3 -3
  510. package/dist/engine/release/foundation_scenario_runners.d.ts.map +1 -1
  511. package/dist/engine/release/foundation_scenario_runners.js +27 -485
  512. package/dist/engine/release/foundation_scenario_runners.js.map +1 -1
  513. package/dist/engine/release/gate_checks/checkControlPlaneTrust.d.ts.map +1 -1
  514. package/dist/engine/release/gate_checks/checkControlPlaneTrust.js +24 -21
  515. package/dist/engine/release/gate_checks/checkControlPlaneTrust.js.map +1 -1
  516. package/dist/engine/release/gate_checks/checkCriticalProblemConsumption.d.ts.map +1 -1
  517. package/dist/engine/release/gate_checks/checkCriticalProblemConsumption.js +8 -9
  518. package/dist/engine/release/gate_checks/checkCriticalProblemConsumption.js.map +1 -1
  519. package/dist/engine/release/gate_checks/checkKnowledgeAssetSchemaP0.js +1 -1
  520. package/dist/engine/release/gate_checks/checkKnowledgeAssetSchemaP0.js.map +1 -1
  521. package/dist/engine/release/gate_checks/checkMainlineConsumption.js +3 -3
  522. package/dist/engine/release/gate_checks/checkMainlineConsumption.js.map +1 -1
  523. package/dist/engine/release/gate_checks/checkTemplateKnowledgeHygiene.d.ts.map +1 -1
  524. package/dist/engine/release/gate_checks/checkTemplateKnowledgeHygiene.js +8 -56
  525. package/dist/engine/release/gate_checks/checkTemplateKnowledgeHygiene.js.map +1 -1
  526. package/dist/engine/release/gate_checks/checkWorkflowNavigation.d.ts.map +1 -1
  527. package/dist/engine/release/gate_checks/checkWorkflowNavigation.js +27 -60
  528. package/dist/engine/release/gate_checks/checkWorkflowNavigation.js.map +1 -1
  529. package/dist/engine/release/release_gate_scenario_registry.js +9 -9
  530. package/dist/engine/release/release_gate_scenario_registry.js.map +1 -1
  531. package/dist/engine/release/release_issue_scenario_registry/scenarios_architecture_workshop.js +44 -44
  532. package/dist/engine/release/release_issue_scenario_registry/scenarios_architecture_workshop.js.map +1 -1
  533. package/dist/engine/release/release_issue_scenario_registry/scenarios_code_observability.js +20 -20
  534. package/dist/engine/release/release_issue_scenario_registry/scenarios_code_observability.js.map +1 -1
  535. package/dist/engine/release/release_issue_scenario_registry/scenarios_decision_workshop.js +66 -66
  536. package/dist/engine/release/release_issue_scenario_registry/scenarios_decision_workshop.js.map +1 -1
  537. package/dist/engine/release/release_issue_scenario_registry/scenarios_design_pack.d.ts.map +1 -1
  538. package/dist/engine/release/release_issue_scenario_registry/scenarios_design_pack.js +44 -48
  539. package/dist/engine/release/release_issue_scenario_registry/scenarios_design_pack.js.map +1 -1
  540. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_contract.d.ts.map +1 -1
  541. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_contract.js +21 -26
  542. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_contract.js.map +1 -1
  543. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_visibility.js +20 -20
  544. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_visibility.js.map +1 -1
  545. package/dist/engine/release/release_issue_scenario_registry/workshop_helpers.d.ts +1 -1
  546. package/dist/engine/release/release_issue_scenario_registry/workshop_helpers.d.ts.map +1 -1
  547. package/dist/engine/release/release_issue_scenario_registry/workshop_helpers.js +14 -3
  548. package/dist/engine/release/release_issue_scenario_registry/workshop_helpers.js.map +1 -1
  549. package/dist/engine/release/types.d.ts +2 -2
  550. package/dist/engine/release/types.d.ts.map +1 -1
  551. package/dist/engine/release/verifier.js +7 -7
  552. package/dist/engine/release/verifier.js.map +1 -1
  553. package/dist/engine/retention_policy.js +1 -1
  554. package/dist/engine/retention_policy.js.map +1 -1
  555. package/dist/engine/state_fact_classifier.d.ts +3 -3
  556. package/dist/engine/state_fact_classifier.js +4 -4
  557. package/dist/engine/state_fact_classifier.js.map +1 -1
  558. package/dist/engine/templates/asset_manifest.d.ts.map +1 -1
  559. package/dist/engine/templates/asset_manifest.js +18 -16
  560. package/dist/engine/templates/asset_manifest.js.map +1 -1
  561. package/dist/engine/templates/consumable_asset_registry/builtin_assets_core.js +13 -13
  562. package/dist/engine/templates/consumable_asset_registry/builtin_assets_core.js.map +1 -1
  563. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_core.d.ts +1 -1
  564. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_core.d.ts.map +1 -1
  565. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_core.js +36 -32
  566. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_core.js.map +1 -1
  567. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext.js +10 -10
  568. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext.js.map +1 -1
  569. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext2.js +18 -18
  570. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext2.js.map +1 -1
  571. package/dist/engine/templates/consumable_asset_registry/types.js +4 -4
  572. package/dist/engine/templates/consumable_asset_registry/types.js.map +1 -1
  573. package/dist/engine/templates/consumption_trace_store.d.ts +3 -3
  574. package/dist/engine/templates/consumption_trace_store.d.ts.map +1 -1
  575. package/dist/engine/templates/consumption_trace_store.js +4 -4
  576. package/dist/engine/templates/consumption_trace_store.js.map +1 -1
  577. package/dist/engine/templates/explicit_asset_registry/adapters.js +4 -4
  578. package/dist/engine/templates/explicit_asset_registry/adapters.js.map +1 -1
  579. package/dist/engine/templates/explicit_asset_registry/artifacts_existing_system.js +10 -10
  580. package/dist/engine/templates/explicit_asset_registry/artifacts_existing_system.js.map +1 -1
  581. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part1.js +25 -25
  582. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part1.js.map +1 -1
  583. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part2.js +5 -5
  584. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part2.js.map +1 -1
  585. package/dist/engine/templates/explicit_asset_registry/checklists.js +7 -7
  586. package/dist/engine/templates/explicit_asset_registry/contributing.js +1 -1
  587. package/dist/engine/templates/explicit_asset_registry/domain.js +9 -9
  588. package/dist/engine/templates/explicit_asset_registry/gates.d.ts.map +1 -1
  589. package/dist/engine/templates/explicit_asset_registry/gates.js +70 -20
  590. package/dist/engine/templates/explicit_asset_registry/gates.js.map +1 -1
  591. package/dist/engine/templates/explicit_asset_registry/internal_patterns.js +27 -27
  592. package/dist/engine/templates/explicit_asset_registry/internal_rules_part1.d.ts.map +1 -1
  593. package/dist/engine/templates/explicit_asset_registry/internal_rules_part1.js +42 -26
  594. package/dist/engine/templates/explicit_asset_registry/internal_rules_part1.js.map +1 -1
  595. package/dist/engine/templates/explicit_asset_registry/internal_rules_part2.js +20 -20
  596. package/dist/engine/templates/explicit_asset_registry/internal_rules_part2.js.map +1 -1
  597. package/dist/engine/templates/explicit_asset_registry/patterns_part1.js +25 -25
  598. package/dist/engine/templates/explicit_asset_registry/patterns_part2.js +25 -25
  599. package/dist/engine/templates/explicit_asset_registry/patterns_part3.js +2 -2
  600. package/dist/engine/templates/explicit_asset_registry/patterns_part3.js.map +1 -1
  601. package/dist/engine/templates/explicit_asset_registry/procedures_part1.d.ts.map +1 -1
  602. package/dist/engine/templates/explicit_asset_registry/procedures_part1.js +58 -26
  603. package/dist/engine/templates/explicit_asset_registry/procedures_part1.js.map +1 -1
  604. package/dist/engine/templates/explicit_asset_registry/procedures_part2.d.ts.map +1 -1
  605. package/dist/engine/templates/explicit_asset_registry/procedures_part2.js +46 -13
  606. package/dist/engine/templates/explicit_asset_registry/procedures_part2.js.map +1 -1
  607. package/dist/engine/templates/explicit_asset_registry/profiles.js +3 -3
  608. package/dist/engine/templates/explicit_asset_registry/profiles.js.map +1 -1
  609. package/dist/engine/templates/explicit_asset_registry/rules_pipeline.d.ts.map +1 -1
  610. package/dist/engine/templates/explicit_asset_registry/rules_pipeline.js +25 -9
  611. package/dist/engine/templates/explicit_asset_registry/rules_pipeline.js.map +1 -1
  612. package/dist/engine/templates/explicit_asset_registry/rules_shared.d.ts.map +1 -1
  613. package/dist/engine/templates/explicit_asset_registry/rules_shared.js +304 -16
  614. package/dist/engine/templates/explicit_asset_registry/rules_shared.js.map +1 -1
  615. package/dist/engine/templates/explicit_asset_registry/scaffolds.js +22 -22
  616. package/dist/engine/templates/explicit_asset_registry/scaffolds.js.map +1 -1
  617. package/dist/engine/templates/explicit_asset_registry/types.d.ts +1 -1
  618. package/dist/engine/templates/observed_consumption.d.ts +2 -2
  619. package/dist/engine/templates/observed_consumption.d.ts.map +1 -1
  620. package/dist/engine/templates/observed_consumption.js +5 -22
  621. package/dist/engine/templates/observed_consumption.js.map +1 -1
  622. package/dist/engine/templates/scaffolder.js +8 -8
  623. package/dist/engine/templates/scaffolder.js.map +1 -1
  624. package/dist/engine/templates/standard_asset_contract.d.ts +5 -5
  625. package/dist/engine/templates/standard_asset_contract.d.ts.map +1 -1
  626. package/dist/engine/templates/standard_asset_contract.js +18 -18
  627. package/dist/engine/templates/standard_asset_contract.js.map +1 -1
  628. package/dist/engine/templates/standard_asset_coverage.js +12 -12
  629. package/dist/engine/templates/standard_asset_coverage.js.map +1 -1
  630. package/dist/engine/templates/template_asset_contract_registry.d.ts +2 -2
  631. package/dist/engine/templates/template_asset_contract_registry.js +23 -23
  632. package/dist/engine/templates/template_asset_contract_registry.js.map +1 -1
  633. package/dist/engine/templates/template_asset_visibility.d.ts +1 -1
  634. package/dist/engine/templates/template_asset_visibility.js +4 -4
  635. package/dist/engine/templates/template_asset_visibility.js.map +1 -1
  636. package/dist/engine/templates/template_init_sync.js +11 -11
  637. package/dist/engine/templates/template_init_sync.js.map +1 -1
  638. package/dist/engine/templates/template_manifest_io.js +6 -6
  639. package/dist/engine/templates/template_manifest_io.js.map +1 -1
  640. package/dist/engine/templates/template_mechanism_auditor.d.ts.map +1 -1
  641. package/dist/engine/templates/template_mechanism_auditor.js +6 -5
  642. package/dist/engine/templates/template_mechanism_auditor.js.map +1 -1
  643. package/dist/engine/templates/workflow_rule_generator.d.ts +1 -1
  644. package/dist/engine/templates/workflow_rule_generator.d.ts.map +1 -1
  645. package/dist/engine/templates/workflow_rule_generator.js +10 -12
  646. package/dist/engine/templates/workflow_rule_generator.js.map +1 -1
  647. package/dist/engine/workflow/index.d.ts +2 -2
  648. package/dist/engine/workflow/index.d.ts.map +1 -1
  649. package/dist/engine/workflow/index.js +1 -1
  650. package/dist/engine/workflow/index.js.map +1 -1
  651. package/dist/engine/workflow/next_action_planner.d.ts.map +1 -1
  652. package/dist/engine/workflow/next_action_planner.js +32 -36
  653. package/dist/engine/workflow/next_action_planner.js.map +1 -1
  654. package/dist/engine/workflow/project_stage_detector.d.ts.map +1 -1
  655. package/dist/engine/workflow/project_stage_detector.js +6 -4
  656. package/dist/engine/workflow/project_stage_detector.js.map +1 -1
  657. package/dist/engine/workflow/workflow_contract_registry.d.ts +49 -31
  658. package/dist/engine/workflow/workflow_contract_registry.d.ts.map +1 -1
  659. package/dist/engine/workflow/workflow_contract_registry.js +81 -666
  660. package/dist/engine/workflow/workflow_contract_registry.js.map +1 -1
  661. package/dist/git/git_deps.d.ts +1 -0
  662. package/dist/git/git_deps.d.ts.map +1 -1
  663. package/dist/git/operations.d.ts +1 -0
  664. package/dist/git/operations.d.ts.map +1 -1
  665. package/dist/git/operations.js +2 -0
  666. package/dist/git/operations.js.map +1 -1
  667. package/dist/index.d.ts +1 -1
  668. package/dist/index.js +10 -1
  669. package/dist/index.js.map +1 -1
  670. package/dist/knowledge/conflict_detector.d.ts.map +1 -1
  671. package/dist/knowledge/conflict_detector.js +13 -2
  672. package/dist/knowledge/conflict_detector.js.map +1 -1
  673. package/dist/knowledge/health_checker.d.ts.map +1 -1
  674. package/dist/knowledge/health_checker.js +5 -3
  675. package/dist/knowledge/health_checker.js.map +1 -1
  676. package/dist/knowledge/index_manager.d.ts +16 -2
  677. package/dist/knowledge/index_manager.d.ts.map +1 -1
  678. package/dist/knowledge/index_manager.js +124 -55
  679. package/dist/knowledge/index_manager.js.map +1 -1
  680. package/dist/knowledge/loader.d.ts +8 -4
  681. package/dist/knowledge/loader.d.ts.map +1 -1
  682. package/dist/knowledge/loader.js +189 -34
  683. package/dist/knowledge/loader.js.map +1 -1
  684. package/dist/knowledge/writer.js +2 -2
  685. package/dist/knowledge/writer.js.map +1 -1
  686. package/dist/server/tools/cep_assessment.d.ts +1 -1
  687. package/dist/server/tools/cep_assessment.d.ts.map +1 -1
  688. package/dist/server/tools/cep_assessment.js +15 -6
  689. package/dist/server/tools/cep_assessment.js.map +1 -1
  690. package/dist/server/tools/gate_checks.js +3 -3
  691. package/dist/server/tools/gate_checks.js.map +1 -1
  692. package/dist/server/tools/index.d.ts.map +1 -1
  693. package/dist/server/tools/index.js +11 -30
  694. package/dist/server/tools/index.js.map +1 -1
  695. package/dist/server/tools/lazy_loaders.d.ts +1 -4
  696. package/dist/server/tools/lazy_loaders.d.ts.map +1 -1
  697. package/dist/server/tools/lazy_loaders.js +2 -4
  698. package/dist/server/tools/lazy_loaders.js.map +1 -1
  699. package/dist/server/tools/middleware.d.ts +2 -0
  700. package/dist/server/tools/middleware.d.ts.map +1 -1
  701. package/dist/server/tools/middleware.js +110 -132
  702. package/dist/server/tools/middleware.js.map +1 -1
  703. package/dist/server/tools/schemas.d.ts +2 -2
  704. package/dist/server/tools/schemas.js +5 -5
  705. package/dist/server/tools/schemas.js.map +1 -1
  706. package/dist/server/tools/tool_groups/admin.d.ts.map +1 -1
  707. package/dist/server/tools/tool_groups/admin.js +16 -122
  708. package/dist/server/tools/tool_groups/admin.js.map +1 -1
  709. package/dist/server/tools/tool_groups/auxiliary.d.ts.map +1 -1
  710. package/dist/server/tools/tool_groups/auxiliary.js +4 -21
  711. package/dist/server/tools/tool_groups/auxiliary.js.map +1 -1
  712. package/dist/server/tools/tool_groups/knowledge.js +2 -2
  713. package/dist/server/tools/tool_groups/knowledge.js.map +1 -1
  714. package/dist/server/tools/tool_groups/product_operations.d.ts +9 -0
  715. package/dist/server/tools/tool_groups/product_operations.d.ts.map +1 -0
  716. package/dist/server/tools/tool_groups/product_operations.js +143 -0
  717. package/dist/server/tools/tool_groups/product_operations.js.map +1 -0
  718. package/dist/server/tools/tool_groups/scaffold_accept_deliver.d.ts +0 -1
  719. package/dist/server/tools/tool_groups/scaffold_accept_deliver.d.ts.map +1 -1
  720. package/dist/server/tools/tool_groups/scaffold_accept_deliver.js +5 -427
  721. package/dist/server/tools/tool_groups/scaffold_accept_deliver.js.map +1 -1
  722. package/dist/server/tools/tool_groups/state_machine.d.ts +13 -0
  723. package/dist/server/tools/tool_groups/state_machine.d.ts.map +1 -0
  724. package/dist/server/tools/tool_groups/state_machine.js +960 -0
  725. package/dist/server/tools/tool_groups/state_machine.js.map +1 -0
  726. package/dist/server/tools/tool_names.d.ts +23 -19
  727. package/dist/server/tools/tool_names.d.ts.map +1 -1
  728. package/dist/server/tools/tool_names.js +29 -24
  729. package/dist/server/tools/tool_names.js.map +1 -1
  730. package/dist/types/dual_layer.d.ts +3 -3
  731. package/dist/types/index.d.ts +1 -0
  732. package/dist/types/index.d.ts.map +1 -1
  733. package/dist/types/index.js +1 -0
  734. package/dist/types/index.js.map +1 -1
  735. package/dist/types/knowledge.d.ts +2 -4
  736. package/dist/types/knowledge.d.ts.map +1 -1
  737. package/dist/types/knowledge.js.map +1 -1
  738. package/dist/types/pipeline.d.ts +20 -9
  739. package/dist/types/pipeline.d.ts.map +1 -1
  740. package/dist/types/pipeline.js +4 -0
  741. package/dist/types/pipeline.js.map +1 -1
  742. package/dist/types/state_machine.d.ts +359 -0
  743. package/dist/types/state_machine.d.ts.map +1 -0
  744. package/dist/types/state_machine.js +47 -0
  745. package/dist/types/state_machine.js.map +1 -0
  746. package/dist/types/task.d.ts +11 -10
  747. package/dist/types/task.d.ts.map +1 -1
  748. package/package.json +14 -14
  749. package/templates/artifacts/existing-system//344/270/200/351/224/256/345/274/200/345/205/263/351/205/215/347/275/256/346/250/241/347/211/210.json +23 -2
  750. package/templates/artifacts/existing-system//345/216/206/345/217/262/346/225/260/346/215/256/346/270/205/346/264/227/350/204/232/346/234/254/346/250/241/347/211/210.md +11 -7
  751. package/templates/artifacts/existing-system//345/216/206/345/217/262/351/201/227/347/225/231/351/233/267/345/214/272/346/270/205/345/215/225/346/250/241/347/211/210.md +23 -23
  752. package/templates/artifacts/existing-system//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/346/250/241/347/211/210.md +25 -16
  753. package/templates/artifacts/existing-system//345/242/236/351/207/217/350/276/271/347/225/214/347/225/214/345/256/232/346/226/207/346/241/243/346/250/241/347/211/210.md +21 -16
  754. package/templates/artifacts/existing-system//346/224/271/351/200/240/345/275/261/345/223/215/350/214/203/345/233/264/350/257/204/344/274/260/346/250/241/347/211/210.md +18 -8
  755. package/templates/artifacts/existing-system//346/225/260/346/215/256/350/241/200/347/274/230/345/233/276/346/250/241/347/211/210.md +15 -8
  756. package/templates/artifacts/existing-system//346/226/260/350/200/201/351/200/273/350/276/221/346/257/224/345/257/271/346/227/245/345/277/227/346/250/241/347/211/210.md +9 -8
  757. package/templates/artifacts/existing-system//347/264/247/346/200/245/345/233/236/346/273/232/346/211/213/345/206/214/346/250/241/347/211/210.md +48 -15
  758. package/templates/artifacts/existing-system//351/232/224/347/246/273/351/200/202/351/205/215/345/231/250/346/226/271/346/241/210/346/250/241/347/211/210.md +13 -9
  759. package/templates/artifacts/shared/ADR/346/250/241/347/211/210.md +17 -7
  760. package/templates/artifacts/shared/API/346/216/245/345/217/243/350/247/204/346/240/274/346/226/207/346/241/243/346/250/241/347/211/210.md +31 -72
  761. package/templates/artifacts/shared/Bug/345/210/206/346/236/220/346/250/241/347/211/210.md +2 -12
  762. package/templates/artifacts/shared/OOD/350/256/276/350/256/241/346/221/230/350/246/201/346/250/241/347/211/210.md +2 -11
  763. package/templates/artifacts/shared/POC/347/273/223/350/256/272/346/250/241/347/211/210.md +2 -12
  764. package/templates/artifacts/shared//344/273/243/347/240/201/345/256/241/346/237/245/346/212/245/345/221/212/346/250/241/347/211/210.md +47 -12
  765. package/templates/artifacts/shared//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/346/250/241/347/211/210.md +2 -9
  766. package/templates/artifacts/shared//345/210/207/347/211/207/350/256/241/345/210/222/346/250/241/347/211/210.md +122 -20
  767. package/templates/artifacts/shared//345/211/215/347/253/257/351/241/265/351/235/242/351/252/214/346/224/266/346/270/205/345/215/225.md +2 -16
  768. package/templates/artifacts/shared//345/216/237/345/236/213/350/257/264/346/230/216/346/250/241/347/211/210.md +115 -227
  769. package/templates/artifacts/shared//345/220/216/347/253/257API/351/252/214/346/224/266/346/270/205/345/215/225.md +2 -15
  770. package/templates/artifacts/shared//345/220/216/347/253/257/345/256/236/347/216/260/351/252/214/346/224/266/346/270/205/345/215/225.md +11 -11
  771. package/templates/artifacts/shared//345/256/211/345/205/250/345/256/241/350/256/241/346/250/241/347/211/210.md +8 -35
  772. package/templates/artifacts/shared//345/256/241/346/237/245/346/221/230/350/246/201.md +10 -17
  773. package/templates/artifacts/shared//346/200/247/350/203/275/345/210/206/346/236/220/346/250/241/347/211/210.md +2 -12
  774. package/templates/artifacts/shared//346/212/200/346/234/257/351/200/211/345/236/213/351/252/214/346/224/266/346/270/205/345/215/225.md +2 -15
  775. package/templates/artifacts/shared//346/216/245/345/217/243/345/257/271/346/216/245/346/226/271/346/241/210/346/250/241/347/211/210.md +54 -22
  776. package/templates/artifacts/shared//346/225/205/351/232/234/345/244/215/347/233/230/346/250/241/347/211/210.md +2 -13
  777. package/templates/artifacts/shared//346/225/260/346/215/256/345/272/223/345/217/230/346/233/264/346/226/271/346/241/210/346/250/241/347/211/210.md +43 -33
  778. package/templates/artifacts/shared//346/225/260/346/215/256/345/272/223/345/217/230/346/233/264/351/252/214/346/224/266/346/270/205/345/215/225.md +2 -17
  779. package/templates/artifacts/shared//346/225/260/346/215/256/345/272/223/350/256/276/350/256/241/346/226/207/346/241/243/346/250/241/347/211/210.md +121 -44
  780. package/templates/artifacts/shared//346/236/266/346/236/204/350/256/276/350/256/241/346/250/241/347/211/210.md +110 -78
  781. package/templates/artifacts/shared//346/265/213/350/257/225/350/256/241/345/210/222/346/250/241/347/211/210.md +27 -20
  782. package/templates/artifacts/shared//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/346/250/241/347/211/210.md +2 -25
  783. package/templates/artifacts/shared//350/257/246/347/273/206/350/256/276/350/256/241/346/250/241/347/211/210.md +83 -32
  784. package/templates/artifacts/shared//350/277/201/347/247/273/350/257/204/344/274/260/346/250/241/347/211/210.md +15 -14
  785. package/templates/artifacts/shared//351/200/232/347/224/250/350/264/250/351/207/217/351/252/214/346/224/266/346/270/205/345/215/225.md +157 -38
  786. package/templates/artifacts/shared//351/207/215/346/236/204/346/226/271/346/241/210/346/250/241/347/211/210.md +2 -12
  787. package/templates/artifacts/shared//351/234/200/346/261/202/345/210/206/346/236/220/346/250/241/347/211/210.md +74 -17
  788. package/templates/artifacts/shared//351/234/200/346/261/202/345/216/237/345/236/213/350/256/276/350/256/241/345/256/236/347/216/260/350/277/275/350/270/252/347/237/251/351/230/265/346/250/241/347/211/210.md +38 -47
  789. package/templates/checklists//344/270/273/351/223/276/350/267/257/346/216/245/345/205/245/351/252/214/346/224/266/346/270/205/345/215/225.md +1 -8
  790. package/templates/checklists//344/274/232/350/257/235/346/201/242/345/244/215.md +1 -12
  791. package/templates/checklists//345/267/245/344/275/234/346/265/201/351/252/214/346/224/266/346/270/205/345/215/225.md +1 -8
  792. package/templates/checklists//346/240/270/345/277/203/345/267/245/347/250/213/346/211/247/350/241/214/351/252/214/346/224/266/346/270/205/345/215/225.md +1 -8
  793. package/templates/checklists//347/237/245/350/257/206/346/263/250/345/205/245/351/252/214/346/224/266/346/270/205/345/215/225.md +1 -8
  794. package/templates/checklists//351/232/220/347/247/201/345/256/241/346/237/245/346/270/205/345/215/225.md +1 -8
  795. package/templates/checklists//351/252/214/350/257/201/351/252/214/346/224/266/346/270/205/345/215/225.md +1 -8
  796. package/templates/domain//345/244/232/347/247/237/346/210/267.md +1 -15
  797. package/templates/domain//345/256/241/350/256/241/346/227/245/345/277/227.md +1 -14
  798. package/templates/domain//345/257/274/345/205/245/345/257/274/345/207/272/350/247/204/345/210/231.md +1 -16
  799. package/templates/domain//345/267/245/344/275/234/346/265/201/345/274/225/346/223/216.md +1 -19
  800. package/templates/domain//346/212/245/350/241/250/347/273/237/350/256/241.md +1 -17
  801. package/templates/domain//346/224/257/344/273/230/350/247/204/345/210/231.md +1 -18
  802. package/templates/domain//346/225/260/346/215/256/346/235/203/351/231/220.md +1 -15
  803. package/templates/domain//351/200/232/347/224/250/346/234/272/346/242/260/346/235/241/346/254/276.md +1 -17
  804. package/templates/domain//351/200/232/347/237/245/350/247/204/345/210/231.md +1 -17
  805. package/templates/gates/existing-system/gate-/346/236/266/346/236/204/350/256/276/350/256/241.yaml +13 -14
  806. package/templates/gates/existing-system/gate-/347/216/260/346/234/211/347/263/273/347/273/237/345/210/206/346/236/220.yaml +48 -0
  807. package/templates/gates/existing-system/gate-/347/274/226/347/240/201/344/270/216/345/215/225/345/205/203/346/265/213/350/257/225.yaml +41 -8
  808. package/templates/gates/existing-system/gate-/350/257/225/350/277/220/350/241/214.yaml +30 -12
  809. package/templates/gates/existing-system/gate-/350/257/246/347/273/206/350/256/276/350/256/241.yaml +25 -15
  810. package/templates/gates/shared/gate-/344/272/244/344/273/230.yaml +26 -8
  811. package/templates/gates/shared/gate-/344/273/243/347/240/201/345/256/241/346/237/245.yaml +47 -8
  812. package/templates/gates/shared/gate-/344/273/273/345/212/241/350/247/204/345/210/222.yaml +131 -5
  813. package/templates/gates/shared/gate-/345/210/207/347/211/207/345/256/241/346/237/245.yaml +50 -0
  814. package/templates/gates/shared/gate-/345/210/207/347/211/207/346/211/247/350/241/214.yaml +51 -0
  815. package/templates/gates/shared/gate-/345/217/221/345/270/203/345/220/216/350/247/202/345/257/237.yaml +40 -8
  816. package/templates/gates/shared/gate-/345/256/211/345/205/250/345/256/241/350/256/241.yaml +77 -0
  817. package/templates/gates/shared/gate-/346/236/266/346/236/204/350/256/276/350/256/241.yaml +136 -9
  818. package/templates/gates/shared/gate-/347/274/226/347/240/201/344/270/216/345/215/225/345/205/203/346/265/213/350/257/225.yaml +30 -4
  819. package/templates/gates/shared/gate-/347/274/226/347/240/201/345/207/206/345/244/207.yaml +40 -4
  820. package/templates/gates/shared/gate-/347/274/226/347/240/201/345/256/236/347/216/260.yaml +42 -4
  821. package/templates/gates/shared/gate-/347/274/226/347/240/201/351/252/214/350/257/201.yaml +33 -4
  822. package/templates/gates/shared/gate-/350/201/224/350/260/203/351/252/214/350/257/201.yaml +47 -8
  823. package/templates/gates/shared/gate-/350/257/246/347/273/206/350/256/276/350/256/241.yaml +118 -9
  824. package/templates/gates/shared/gate-/351/234/200/346/261/202/345/210/206/346/236/220.yaml +154 -8
  825. package/templates/internal/patterns/Diff/345/275/222/345/261/236/350/277/275/350/270/252.md +1 -12
  826. package/templates/internal/patterns/Hook/345/261/202/344/272/247/347/211/251/347/273/223/346/236/204/346/240/241/351/252/214.md +1 -7
  827. package/templates/internal/patterns/Java/350/264/250/351/207/217/351/227/250/347/246/201.md +1 -13
  828. package/templates/internal/patterns/LLM/351/242/204/347/256/227/347/275/221/345/205/263.md +1 -12
  829. package/templates/internal/patterns//344/272/247/347/211/251Schema/346/263/250/345/206/214/344/270/255/345/277/203.md +1 -7
  830. package/templates/internal/patterns//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 +1 -12
  831. package/templates/internal/patterns//344/273/273/345/212/241/347/256/241/347/220/206/345/231/250.md +1 -13
  832. package/templates/internal/patterns//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 +1 -12
  833. package/templates/internal/patterns//344/275/234/347/224/250/345/237/237/347/247/237/347/272/246.md +1 -13
  834. package/templates/internal/patterns//345/206/262/347/252/201/351/227/250/347/246/201.md +1 -12
  835. package/templates/internal/patterns//345/206/263/347/255/226/347/275/221/345/205/263.md +1 -14
  836. package/templates/internal/patterns//345/210/206/345/234/272/346/231/257/350/277/207/347/250/213/350/247/204/345/210/231.md +1 -7
  837. package/templates/internal/patterns//345/217/230/345/274/202/345/256/241/350/256/241.md +1 -13
  838. package/templates/internal/patterns//345/233/236/345/275/222/347/237/251/351/230/265.md +1 -12
  839. package/templates/internal/patterns//345/267/245/344/275/234/345/214/272/344/272/222/346/226/245/351/224/201.md +1 -12
  840. package/templates/internal/patterns//345/267/245/344/275/234/345/214/272/345/224/244/351/206/222.md +1 -12
  841. package/templates/internal/patterns//345/271/266/345/217/221/351/224/201.md +1 -14
  842. package/templates/internal/patterns//345/274/200/345/217/221/350/200/205/345/256/252/346/263/225.md +2 -15
  843. package/templates/internal/patterns//346/225/217/346/204/237/344/277/241/346/201/257/346/211/253/346/217/217.md +1 -12
  844. package/templates/internal/patterns//346/250/241/347/211/210Frontmatter/350/247/243/346/236/220.md +1 -7
  845. package/templates/internal/patterns//346/262/273/347/220/206/350/277/220/350/241/214/346/227/266/345/276/252/347/216/257.md +1 -13
  846. package/templates/internal/patterns//346/265/201/345/274/217/345/277/203/350/267/263.md +2 -14
  847. package/templates/internal/patterns//347/237/245/350/257/206/344/270/273/346/235/203.md +1 -13
  848. package/templates/internal/patterns//350/257/255/344/271/211/350/257/201/346/215/256.md +1 -12
  849. package/templates/internal/patterns//350/277/220/350/241/214/345/256/211/345/205/250/345/214/205.md +1 -13
  850. package/templates/internal/patterns//351/252/214/350/257/201/345/221/275/344/273/244/347/224/237/346/210/220.md +4 -14
  851. package/templates/internal/rules/OOD/344/270/216SOLID/350/256/276/350/256/241/350/247/204/345/210/231.md +0 -13
  852. package/templates/internal/rules//344/272/247/347/211/251/345/245/221/347/272/246/350/247/204/345/210/231.md +2 -9
  853. package/templates/internal/rules//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/350/247/204/345/210/231.md +3 -29
  854. package/templates/internal/rules//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/350/247/204/345/210/231.md +0 -10
  855. package/templates/internal/rules//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213/345/245/221/347/272/246/350/247/204/345/210/231.md +0 -13
  856. package/templates/internal/rules//345/221/275/344/273/244/346/211/247/350/241/214/350/247/204/345/210/231.md +1 -8
  857. package/templates/internal/rules//345/221/275/344/273/244/350/267/257/347/224/261/350/247/204/345/210/231.md +30 -0
  858. package/templates/internal/rules//345/267/245/344/275/234/346/265/201/345/245/221/347/272/246/350/247/204/345/210/231.md +1 -8
  859. package/templates/internal/rules//345/267/245/344/275/234/346/265/201/345/257/274/350/210/252/345/245/221/347/272/246/350/247/204/345/210/231.md +15 -26
  860. package/templates/internal/rules//345/267/245/344/275/234/346/265/201/346/250/241/347/211/210/345/214/205/350/247/204/345/210/231.md +0 -8
  861. package/templates/internal/rules//345/267/245/345/205/267/350/260/203/347/224/250/350/247/204/345/210/231.md +1 -8
  862. package/templates/internal/rules//346/204/217/345/233/276/350/267/257/347/224/261/350/247/204/345/210/231.md +5 -10
  863. package/templates/internal/rules//346/211/247/350/241/214/345/256/210/345/215/253/350/257/204/344/274/260/350/247/204/345/210/231.md +4 -11
  864. package/templates/internal/rules//346/211/251/345/261/225/347/224/237/345/221/275/345/221/250/346/234/237/350/247/204/345/210/231.md +0 -8
  865. package/templates/internal/rules//346/212/200/346/234/257/345/206/263/347/255/226/344/270/273/346/235/203/350/247/204/345/210/231.md +0 -11
  866. package/templates/internal/rules//346/225/217/346/204/237/344/277/241/346/201/257/345/244/204/347/220/206/350/247/204/345/210/231.md +4 -19
  867. package/templates/internal/rules//346/226/275/345/267/245/346/214/207/344/273/244/345/245/221/347/272/246/350/247/204/345/210/231.md +0 -9
  868. package/templates/internal/rules//346/227/245/345/277/227/346/262/273/347/220/206/350/247/204/345/210/231.md +0 -12
  869. package/templates/internal/rules//346/234/272/345/210/266/350/207/252/346/262/273/347/220/206/350/247/204/345/210/231.md +0 -12
  870. package/templates/internal/rules//346/236/266/346/236/204/345/206/263/347/255/226/347/240/224/350/256/250/350/247/204/345/210/231.md +4 -8
  871. package/templates/internal/rules//346/240/207/345/207/206/350/265/204/344/272/247/350/246/206/347/233/226/350/247/204/345/210/231.md +2 -16
  872. package/templates/internal/rules//346/240/270/345/277/203/344/275/223/351/252/214/345/216/237/345/210/231.md +1 -9
  873. package/templates/internal/rules//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 +2 -9
  874. package/templates/internal/rules//346/250/241/347/211/210Frontmatter/350/247/204/350/214/203.md +85 -65
  875. package/templates/internal/rules//346/250/241/347/211/210/350/265/204/344/272/247/345/217/257/350/247/201/346/200/247/350/247/204/345/210/231.md +0 -15
  876. package/templates/internal/rules//346/263/250/345/206/214/350/241/250/345/237/272/347/241/200/350/256/276/346/226/275/350/247/204/345/210/231.md +1 -8
  877. package/templates/internal/rules//346/274/224/350/277/233/345/233/236/345/275/222/351/227/250/346/216/247/350/247/204/345/210/231.md +0 -14
  878. package/templates/internal/rules//347/224/250/346/210/267/345/217/215/351/246/210/345/245/221/347/272/246/350/247/204/345/210/231.md +4 -21
  879. package/templates/internal/rules//347/237/245/350/257/206/346/262/273/347/220/206/350/247/204/345/210/231.md +0 -12
  880. package/templates/internal/rules//347/237/245/350/257/206/346/263/250/345/205/245/350/276/271/347/225/214/350/247/204/345/210/231.md +1 -8
  881. package/templates/internal/rules//347/237/245/350/257/206/350/265/204/344/272/247/346/262/273/347/220/206/350/247/204/345/210/231.md +2 -11
  882. package/templates/internal/rules//347/254/254/344/270/200/346/200/247/345/216/237/347/220/206/346/216/250/347/220/206/350/247/204/345/210/231.md +0 -11
  883. package/templates/internal/rules//347/273/206/350/212/202/347/272/252/345/276/213/350/247/204/345/210/231.md +0 -11
  884. package/templates/internal/rules//350/204/221/346/232/264/344/270/216/346/226/271/346/241/210/346/216/242/347/264/242/350/247/204/345/210/231.md +0 -11
  885. package/templates/internal/rules//350/256/241/345/210/222/345/211/215/347/275/256/351/227/250/350/247/204/345/210/231.md +1 -16
  886. package/templates/internal/rules//350/256/276/350/256/241/344/272/247/347/211/251/345/214/205/350/247/204/345/210/231.md +6 -10
  887. package/templates/internal/rules//350/257/201/346/215/256/351/251/261/345/212/250/344/270/216/345/217/215/345/271/273/350/247/211/350/247/204/345/210/231.md +0 -12
  888. package/templates/internal/rules//350/267/250/345/271/263/345/217/260/350/267/257/345/276/204/345/256/211/345/205/250/350/247/204/345/210/231.md +0 -8
  889. package/templates/internal/rules//350/276/223/345/205/245/346/235/220/346/226/231/345/245/221/347/272/246/350/247/204/345/210/231.md +1 -8
  890. package/templates/internal/rules//351/200/232/347/224/250/345/206/263/347/255/226/347/240/224/350/256/250/350/247/204/345/210/231.md +0 -19
  891. package/templates/internal/rules//351/205/215/347/275/256/344/274/230/345/205/210/347/272/247/350/247/204/345/210/231.md +38 -35
  892. package/templates/internal/rules//351/205/215/347/275/256/350/220/275/347/233/230/350/276/271/347/225/214/350/247/204/345/210/231.md +5 -16
  893. package/templates/internal/rules//351/230/262/345/255/244/345/262/233/345/256/236/347/216/260/350/247/204/345/210/231.md +1 -8
  894. package/templates/internal/rules//351/233/266/351/205/215/347/275/256/345/210/235/345/247/213/345/214/226/350/247/204/345/210/231.md +31 -35
  895. package/templates/internal/rules//351/252/214/346/224/266/346/250/241/347/211/210/350/276/223/345/207/272/345/245/221/347/272/246/350/247/204/345/210/231.md +2 -16
  896. package/templates/internal/rules//351/252/214/350/257/201/345/245/221/347/272/246/350/247/204/345/210/231.md +1 -8
  897. package/templates/patterns/API/350/256/276/350/256/241/350/247/204/350/214/203.md +1 -17
  898. package/templates/patterns/Docker/351/203/250/347/275/262/350/247/204/350/214/203.md +1 -15
  899. package/templates/patterns/Git/346/223/215/344/275/234/350/247/204/350/214/203.md +1 -19
  900. package/templates/patterns/N/345/212/2401/346/237/245/350/257/242/350/247/204/350/214/203.md +1 -18
  901. package/templates/patterns/React/345/210/227/350/241/250/350/241/250/346/240/274/350/247/204/350/214/203.md +1 -17
  902. package/templates/patterns/React/346/216/245/345/217/243/351/233/206/346/210/220/350/247/204/350/214/203.md +1 -18
  903. package/templates/patterns/React/347/212/266/346/200/201/347/256/241/347/220/206/350/247/204/350/214/203.md +1 -18
  904. package/templates/patterns/React/347/273/204/344/273/266/350/247/204/350/214/203.md +1 -17
  905. package/templates/patterns/React/350/241/250/345/215/225/350/247/204/350/214/203.md +1 -17
  906. package/templates/patterns/React/350/267/257/347/224/261/350/247/204/350/214/203.md +1 -18
  907. package/templates/patterns/SOLID/350/256/276/350/256/241/350/247/204/350/214/203.md +1 -10
  908. package/templates/patterns/Schema/345/205/274/345/256/271/350/247/204/350/214/203.md +1 -17
  909. package/templates/patterns/Vue/347/212/266/346/200/201/347/256/241/347/220/206/350/247/204/350/214/203.md +1 -16
  910. package/templates/patterns/Vue/347/273/204/344/273/266/350/247/204/350/214/203.md +1 -20
  911. package/templates/patterns/Vue/350/267/257/347/224/261/350/247/204/350/214/203.md +1 -15
  912. package/templates/patterns//344/272/213/344/273/266/351/251/261/345/212/250/350/247/204/350/214/203.md +1 -19
  913. package/templates/patterns//344/272/213/345/212/241/346/250/241/345/274/217/350/247/204/350/214/203.md +1 -18
  914. package/templates/patterns//344/274/230/351/233/205/345/201/234/346/234/272/350/247/204/350/214/203.md +1 -18
  915. package/templates/patterns//345/205/250/346/240/210/346/265/201/347/250/213/344/277/256/345/244/215.md +1 -16
  916. package/templates/patterns//345/210/206/351/241/265/346/237/245/350/257/242/350/247/204/350/214/203.md +1 -21
  917. package/templates/patterns//345/211/215/347/253/257/346/200/247/350/203/275/350/247/204/350/214/203.md +1 -19
  918. package/templates/patterns//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213/350/247/204/350/214/203.md +1 -10
  919. package/templates/patterns//345/221/275/345/220/215/350/247/204/350/214/203.md +1 -16
  920. package/templates/patterns//345/233/275/351/231/205/345/214/226/350/247/204/350/214/203.md +1 -18
  921. package/templates/patterns//345/242/236/345/210/240/346/224/271/346/237/245/350/247/204/350/214/203.md +1 -18
  922. package/templates/patterns//345/244/226/351/203/250/344/276/235/350/265/226/350/247/204/350/214/203.md +1 -18
  923. package/templates/patterns//345/245/221/347/272/246/345/205/274/345/256/271/350/247/204/350/214/203.md +1 -15
  924. package/templates/patterns//345/256/232/346/227/266/344/273/273/345/212/241/350/247/204/350/214/203.md +1 -19
  925. package/templates/patterns//345/256/236/346/227/266/346/216/250/351/200/201/350/247/204/350/214/203.md +1 -17
  926. package/templates/patterns//345/267/245/347/250/213/347/272/252/345/276/213.md +1 -16
  927. package/templates/patterns//345/271/266/345/217/221/346/216/247/345/210/266/350/247/204/350/214/203.md +1 -21
  928. package/templates/patterns//345/274/202/346/255/245/345/257/274/345/207/272/350/247/204/350/214/203.md +1 -18
  929. package/templates/patterns//346/216/245/345/217/243/345/245/221/347/272/246/350/247/204/350/214/203.md +1 -16
  930. package/templates/patterns//346/220/234/347/264/242/346/250/241/345/274/217/350/247/204/350/214/203.md +1 -19
  931. package/templates/patterns//346/225/260/346/215/256/351/232/220/347/247/201/350/247/204/350/214/203.md +2 -21
  932. package/templates/patterns//346/226/207/344/273/266/344/270/212/344/274/240/350/247/204/350/214/203.md +1 -17
  933. package/templates/patterns//346/227/240/351/232/234/347/242/215/350/247/204/350/214/203.md +1 -17
  934. package/templates/patterns//346/227/245/345/277/227/350/247/204/350/214/203.md +1 -18
  935. package/templates/patterns//346/235/203/351/231/220/350/256/244/350/257/201/350/247/204/350/214/203.md +1 -21
  936. package/templates/patterns//346/236/266/346/236/204/347/272/242/347/272/277.md +1 -15
  937. package/templates/patterns//346/265/213/350/257/225/350/264/250/351/207/217/350/247/204/350/214/203.md +1 -16
  938. package/templates/patterns//347/206/224/346/226/255/351/231/215/347/272/247/350/247/204/350/214/203.md +1 -19
  939. package/templates/patterns//347/212/266/346/200/201/346/265/201/350/275/254/350/247/204/350/214/203.md +1 -16
  940. package/templates/patterns//347/272/246/346/235/237/345/256/236/347/216/260/350/247/204/350/214/203.md +1 -18
  941. package/templates/patterns//347/274/223/345/255/230/347/255/226/347/225/245/350/247/204/350/214/203.md +1 -18
  942. package/templates/patterns//347/274/226/347/240/201/350/264/250/351/207/217/350/247/204/350/214/203.md +1 -16
  943. package/templates/patterns//347/274/272/351/231/267/347/256/241/347/220/206/350/247/204/350/214/203.md +1 -15
  944. package/templates/patterns//350/260/203/350/257/225/346/226/271/346/263/225/350/256/272.md +1 -16
  945. package/templates/patterns//350/276/223/345/205/245/346/240/241/351/252/214/350/247/204/350/214/203.md +1 -18
  946. package/templates/patterns//351/224/231/350/257/257/345/244/204/347/220/206/350/247/204/350/214/203.md +1 -18
  947. package/templates/patterns//351/224/231/350/257/257/350/276/271/347/225/214/350/247/204/350/214/203.md +1 -20
  948. package/templates/patterns//351/242/206/345/237/237/351/251/261/345/212/250/350/256/276/350/256/241/350/247/204/350/214/203.md +1 -17
  949. package/templates/procedures/OOD/350/256/276/350/256/241/345/267/245/344/275/234/346/265/201.md +41 -23
  950. package/templates/procedures/Schema/345/217/230/346/233/264/346/265/201/346/260/264/347/272/277.md +9 -17
  951. package/templates/procedures//344/270/215/347/241/256/345/256/232/346/227/266/345/244/264/350/204/221/351/243/216/346/232/264/346/265/201/347/250/213.md +92 -0
  952. package/templates/procedures//344/270/273/351/223/276/350/267/257/346/216/245/345/205/245/351/252/214/350/257/201/346/265/201/347/250/213.md +8 -11
  953. package/templates/procedures//344/273/243/347/240/201/351/227/250/347/246/201/346/265/201/347/250/213.md +1 -9
  954. package/templates/procedures//344/273/273/345/212/241/346/213/206/350/247/243/346/265/201/347/250/213.md +10 -11
  955. package/templates/procedures//344/273/273/345/212/241/350/247/204/345/210/222/345/267/245/344/275/234/346/265/201.md +83 -0
  956. package/templates/procedures//344/274/232/350/257/235/346/201/242/345/244/215/346/265/201/347/250/213.md +2 -13
  957. package/templates/procedures//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 +9 -18
  958. package/templates/procedures//345/212/237/350/203/275/345/274/200/345/217/221/346/265/201/347/250/213.md +11 -18
  959. package/templates/procedures//345/220/216/347/253/257/346/216/245/345/217/243/345/256/236/347/216/260/345/267/245/344/275/234/346/265/201.md +1 -11
  960. package/templates/procedures//345/221/275/344/273/244/346/211/247/350/241/214/346/265/201/347/250/213.md +2 -9
  961. package/templates/procedures//345/221/275/344/273/244/350/267/257/347/224/261/346/265/201/347/250/213.md +32 -0
  962. package/templates/procedures//345/256/211/345/205/250/345/212/240/345/233/272/346/265/201/346/260/264/347/272/277.md +9 -17
  963. package/templates/procedures//345/267/245/345/205/267/350/260/203/347/224/250/346/265/201/347/250/213.md +2 -9
  964. package/templates/procedures//346/200/247/350/203/275/346/265/201/346/260/264/347/272/277.md +8 -16
  965. package/templates/procedures//346/204/217/345/233/276/350/267/257/347/224/261/346/265/201/347/250/213.md +5 -10
  966. package/templates/procedures//346/216/245/345/217/243/351/233/206/346/210/220/346/265/201/346/260/264/347/272/277.md +18 -20
  967. package/templates/procedures//346/225/260/346/215/256/345/272/223/350/277/201/347/247/273/346/265/201/347/250/213.md +1 -9
  968. package/templates/procedures//346/234/254/345/234/260/346/265/217/350/247/210/345/231/250/351/252/214/346/224/266/345/267/245/344/275/234/346/265/201.md +1 -9
  969. package/templates/procedures//346/236/266/346/236/204/345/206/263/347/255/226/347/240/224/350/256/250/345/267/245/344/275/234/346/265/201.md +8 -9
  970. package/templates/procedures//346/236/266/346/236/204/350/256/276/350/256/241/345/267/245/344/275/234/346/265/201.md +22 -11
  971. package/templates/procedures//346/246/202/345/277/265/351/252/214/350/257/201/346/265/201/346/260/264/347/272/277.md +9 -15
  972. package/templates/procedures//346/265/213/350/257/225/344/274/230/345/205/210/347/274/226/347/240/201/345/267/245/344/275/234/346/265/201.md +18 -12
  973. package/templates/procedures//346/272/220/347/240/201/345/216/237/345/236/213/344/272/244/344/273/230/346/265/201/347/250/213.md +9 -17
  974. package/templates/procedures//347/216/260/346/234/211/347/263/273/347/273/237/345/267/256/350/267/235/345/210/206/346/236/220/345/267/245/344/275/234/346/265/201.md +29 -11
  975. package/templates/procedures//347/237/245/350/257/206/347/273/264/346/212/244/346/265/201/346/260/264/347/272/277.md +8 -16
  976. package/templates/procedures//347/264/247/346/200/245/344/277/256/345/244/215/346/265/201/346/260/264/347/272/277.md +11 -19
  977. package/templates/procedures//347/274/226/347/240/201/345/211/215/346/276/204/346/270/205/346/265/201/347/250/213.md +7 -9
  978. package/templates/procedures//347/274/226/347/240/201/351/230/266/346/256/265/346/211/247/350/241/214/345/267/245/344/275/234/346/265/201.md +101 -0
  979. package/templates/procedures//350/207/252/344/270/273/351/200/211/345/236/213/346/265/201/347/250/213.md +2 -10
  980. package/templates/procedures//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/345/267/245/344/275/234/346/265/201.md +32 -15
  981. package/templates/procedures//350/256/276/350/256/241/345/256/241/350/256/241/346/265/201/347/250/213.md +21 -27
  982. package/templates/procedures//350/257/246/347/273/206/350/256/276/350/256/241/346/265/201/347/250/213.md +91 -26
  983. package/templates/procedures//350/260/203/350/257/225/346/216/222/346/237/245/346/265/201/347/250/213.md +31 -11
  984. package/templates/procedures//350/277/201/347/247/273/346/265/201/346/260/264/347/272/277.md +8 -16
  985. package/templates/procedures//351/203/250/347/275/262/345/217/221/345/270/203/346/265/201/347/250/213.md +35 -11
  986. package/templates/procedures//351/207/215/346/236/204/346/265/201/346/260/264/347/272/277.md +8 -16
  987. package/templates/procedures//351/233/206/346/210/220/351/252/214/350/257/201/346/265/201/347/250/213.md +9 -11
  988. package/templates/procedures//351/234/200/346/261/202/346/276/204/346/270/205/346/265/201/347/250/213.md +25 -20
  989. package/templates/procedures//351/252/214/346/224/266/346/265/213/350/257/225/350/247/204/345/210/222.md +8 -11
  990. package/templates/rules/existing-system//345/205/274/345/256/271/346/200/247/346/243/200/346/237/245/350/247/204/345/210/231.md +66 -26
  991. package/templates/rules/existing-system//350/200/201/347/263/273/347/273/237/345/210/207/347/211/207/350/247/204/345/210/222/350/247/204/345/210/231.md +35 -0
  992. package/templates/rules/existing-system//350/200/246/345/220/210/346/243/200/346/265/213/350/247/204/345/210/231.md +57 -23
  993. package/templates/rules/existing-system//350/257/225/350/277/220/350/241/214/347/206/224/346/226/255/350/247/204/345/210/231.md +49 -27
  994. package/templates/rules/existing-system//351/230/262/345/276/241/346/200/247/347/274/226/347/240/201/350/247/204/345/210/231.md +69 -27
  995. package/templates/rules/existing-system//351/233/267/345/214/272/345/217/215/346/250/241/345/274/217/346/270/205/345/215/225.md +109 -26
  996. package/templates/rules/new-system//350/201/224/350/260/203/350/256/276/350/256/241/347/274/272/351/231/267/345/210/244/345/256/232/350/247/204/345/210/231.md +39 -21
  997. package/templates/rules/shared/SOLID/344/273/243/347/240/201/345/256/241/346/237/245/350/247/204/345/210/231.md +47 -22
  998. package/templates/rules/shared//344/270/200/350/207/264/346/200/247/346/240/241/351/252/214/350/247/204/345/210/231.md +84 -12
  999. package/templates/rules/shared//344/270/212/346/270/270/344/272/244/345/217/211/351/252/214/350/257/201/350/247/204/345/210/231.md +56 -0
  1000. package/templates/rules/shared//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/350/247/204/345/210/231.md +67 -0
  1001. package/templates/rules/shared//344/272/244/344/273/230/345/256/214/345/244/207/346/200/247/345/256/241/346/237/245/350/247/204/345/210/231.md +39 -18
  1002. package/templates/rules/shared//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 +45 -60
  1003. package/templates/rules/shared//345/206/263/347/255/226/345/256/214/346/225/264/346/200/247/345/256/241/346/237/245/350/247/204/345/210/231.md +18 -12
  1004. package/templates/rules/shared//345/210/207/347/211/207/346/211/247/350/241/214/347/272/252/345/276/213/350/247/204/345/210/231.md +96 -0
  1005. package/templates/rules/shared//345/210/207/347/211/207/350/247/204/345/210/222/350/247/204/345/210/231.md +64 -0
  1006. package/templates/rules/shared//345/216/237/345/236/213/346/272/220/347/240/201/346/217/220/345/217/226/350/247/204/345/210/231.md +67 -0
  1007. package/templates/rules/shared//345/216/237/345/236/213/350/257/264/346/230/216/345/256/241/346/237/245/350/247/204/345/210/231.md +73 -0
  1008. package/templates/rules/shared//345/217/221/345/270/203/345/220/216/345/256/241/346/237/245/350/247/204/345/210/231.md +22 -15
  1009. package/templates/rules/shared//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213/345/256/241/346/237/245/350/247/204/345/210/231.md +43 -20
  1010. package/templates/rules/shared//345/256/211/345/205/250/345/256/241/346/237/245/350/247/204/345/210/231.md +53 -19
  1011. package/templates/rules/shared//345/271/266/345/217/221/345/256/241/346/237/245/350/247/204/345/210/231.md +39 -12
  1012. package/templates/rules/shared//346/200/247/350/203/275/345/256/241/346/237/245/350/247/204/345/210/231.md +32 -12
  1013. package/templates/rules/shared//346/216/245/345/217/243/345/245/221/347/272/246/345/256/241/346/237/245/350/247/204/345/210/231.md +40 -13
  1014. package/templates/rules/shared//346/236/266/346/236/204/345/256/241/346/237/245/350/247/204/345/210/231.md +31 -13
  1015. package/templates/rules/shared//346/236/266/346/236/204/350/256/276/350/256/241/345/256/241/346/237/245/350/247/204/345/210/231.md +102 -0
  1016. package/templates/rules/shared//346/236/266/346/236/204/350/256/276/350/256/241/350/247/204/345/210/231.md +64 -0
  1017. package/templates/rules/shared//347/213/254/347/253/213/345/256/241/346/237/245/350/247/204/345/210/231.md +33 -0
  1018. package/templates/rules/shared//347/254/254/344/270/200/346/200/247/345/216/237/347/220/206/346/216/250/347/220/206/350/247/204/345/210/231.md +171 -0
  1019. package/templates/rules/shared//347/274/226/347/240/201/345/260/261/347/273/252/345/256/241/346/237/245/350/247/204/345/210/231.md +9 -15
  1020. package/templates/rules/shared//350/201/224/350/260/203/351/252/214/350/257/201/346/270/205/345/215/225.md +62 -18
  1021. package/templates/rules/shared//350/246/206/347/233/226/347/216/207/346/240/207/345/207/206.md +2 -4
  1022. package/templates/rules/shared//350/257/246/347/273/206/350/256/276/350/256/241/345/256/241/346/237/245/350/247/204/345/210/231.md +82 -0
  1023. package/templates/rules/shared//350/264/250/351/207/217/345/256/241/346/237/245/350/247/204/345/210/231.md +17 -14
  1024. package/templates/rules/shared//350/277/275/350/270/252/347/237/251/351/230/265ID/350/247/204/345/210/231.md +48 -0
  1025. package/templates/rules/shared//350/277/275/350/270/252/347/237/251/351/230/265/345/256/241/346/237/245/350/247/204/345/210/231.md +51 -0
  1026. package/templates/rules/shared//351/234/200/346/261/202/350/264/250/351/207/217/345/256/241/346/237/245/350/247/204/345/210/231.md +31 -15
  1027. package/templates/rules/shared//351/252/214/346/224/266/346/240/207/345/207/206/345/256/241/346/237/245/350/247/204/345/210/231.md +15 -17
  1028. package/templates//346/250/241/347/211/210/350/264/241/347/214/256/346/214/207/345/215/227.md +11 -11
  1029. package/dist/engine/config/config_auto_repair.d.ts +0 -30
  1030. package/dist/engine/config/config_auto_repair.d.ts.map +0 -1
  1031. package/dist/engine/config/config_auto_repair.js +0 -261
  1032. package/dist/engine/config/config_auto_repair.js.map +0 -1
  1033. package/dist/engine/config/config_precedence_contract/constants.d.ts +0 -16
  1034. package/dist/engine/config/config_precedence_contract/constants.d.ts.map +0 -1
  1035. package/dist/engine/config/config_precedence_contract/constants.js +0 -166
  1036. package/dist/engine/config/config_precedence_contract/constants.js.map +0 -1
  1037. package/dist/engine/config/config_precedence_contract/evidence.d.ts +0 -38
  1038. package/dist/engine/config/config_precedence_contract/evidence.d.ts.map +0 -1
  1039. package/dist/engine/config/config_precedence_contract/evidence.js +0 -59
  1040. package/dist/engine/config/config_precedence_contract/evidence.js.map +0 -1
  1041. package/dist/engine/config/config_precedence_contract/field_class.d.ts +0 -11
  1042. package/dist/engine/config/config_precedence_contract/field_class.d.ts.map +0 -1
  1043. package/dist/engine/config/config_precedence_contract/field_class.js +0 -10
  1044. package/dist/engine/config/config_precedence_contract/field_class.js.map +0 -1
  1045. package/dist/engine/config/config_precedence_contract/governance.d.ts +0 -31
  1046. package/dist/engine/config/config_precedence_contract/governance.d.ts.map +0 -1
  1047. package/dist/engine/config/config_precedence_contract/governance.js +0 -232
  1048. package/dist/engine/config/config_precedence_contract/governance.js.map +0 -1
  1049. package/dist/engine/config/config_precedence_contract/index.d.ts +0 -21
  1050. package/dist/engine/config/config_precedence_contract/index.d.ts.map +0 -1
  1051. package/dist/engine/config/config_precedence_contract/index.js +0 -28
  1052. package/dist/engine/config/config_precedence_contract/index.js.map +0 -1
  1053. package/dist/engine/config/config_precedence_contract/project_config.d.ts +0 -20
  1054. package/dist/engine/config/config_precedence_contract/project_config.d.ts.map +0 -1
  1055. package/dist/engine/config/config_precedence_contract/project_config.js +0 -210
  1056. package/dist/engine/config/config_precedence_contract/project_config.js.map +0 -1
  1057. package/dist/engine/config/config_precedence_contract/resolution.d.ts +0 -93
  1058. package/dist/engine/config/config_precedence_contract/resolution.d.ts.map +0 -1
  1059. package/dist/engine/config/config_precedence_contract/resolution.js +0 -317
  1060. package/dist/engine/config/config_precedence_contract/resolution.js.map +0 -1
  1061. package/dist/engine/config/config_precedence_contract/types.d.ts +0 -92
  1062. package/dist/engine/config/config_precedence_contract/types.d.ts.map +0 -1
  1063. package/dist/engine/config/config_precedence_contract/types.js +0 -20
  1064. package/dist/engine/config/config_precedence_contract/types.js.map +0 -1
  1065. package/dist/engine/config/config_precedence_contract.d.ts +0 -22
  1066. package/dist/engine/config/config_precedence_contract.d.ts.map +0 -1
  1067. package/dist/engine/config/config_precedence_contract.js +0 -34
  1068. package/dist/engine/config/config_precedence_contract.js.map +0 -1
  1069. package/dist/engine/config/zero_config_init.d.ts +0 -177
  1070. package/dist/engine/config/zero_config_init.d.ts.map +0 -1
  1071. package/dist/engine/config/zero_config_init.js +0 -857
  1072. package/dist/engine/config/zero_config_init.js.map +0 -1
  1073. package/dist/engine/contracts/route_decision_contract_verifier.d.ts +0 -44
  1074. package/dist/engine/contracts/route_decision_contract_verifier.d.ts.map +0 -1
  1075. package/dist/engine/contracts/route_decision_contract_verifier.js +0 -154
  1076. package/dist/engine/contracts/route_decision_contract_verifier.js.map +0 -1
  1077. package/dist/engine/pipeline/classifier.d.ts +0 -24
  1078. package/dist/engine/pipeline/classifier.d.ts.map +0 -1
  1079. package/dist/engine/pipeline/classifier.js +0 -211
  1080. package/dist/engine/pipeline/classifier.js.map +0 -1
  1081. package/dist/engine/pipeline/expand_pipeline.d.ts +0 -122
  1082. package/dist/engine/pipeline/expand_pipeline.d.ts.map +0 -1
  1083. package/dist/engine/pipeline/expand_pipeline.js +0 -141
  1084. package/dist/engine/pipeline/expand_pipeline.js.map +0 -1
  1085. package/dist/engine/pipeline/hook_context_types.d.ts +0 -66
  1086. package/dist/engine/pipeline/hook_context_types.d.ts.map +0 -1
  1087. package/dist/engine/pipeline/hook_context_types.js +0 -118
  1088. package/dist/engine/pipeline/hook_context_types.js.map +0 -1
  1089. package/dist/engine/pipeline/intent_expander/expand.d.ts +0 -16
  1090. package/dist/engine/pipeline/intent_expander/expand.d.ts.map +0 -1
  1091. package/dist/engine/pipeline/intent_expander/expand.js +0 -308
  1092. package/dist/engine/pipeline/intent_expander/expand.js.map +0 -1
  1093. package/dist/engine/pipeline/intent_route_scorer.d.ts +0 -45
  1094. package/dist/engine/pipeline/intent_route_scorer.d.ts.map +0 -1
  1095. package/dist/engine/pipeline/intent_route_scorer.js +0 -341
  1096. package/dist/engine/pipeline/intent_route_scorer.js.map +0 -1
  1097. package/dist/engine/pipeline/intent_router.d.ts +0 -153
  1098. package/dist/engine/pipeline/intent_router.d.ts.map +0 -1
  1099. package/dist/engine/pipeline/intent_router.js +0 -738
  1100. package/dist/engine/pipeline/intent_router.js.map +0 -1
  1101. package/dist/engine/pipeline/intent_signal_extractor.d.ts +0 -91
  1102. package/dist/engine/pipeline/intent_signal_extractor.d.ts.map +0 -1
  1103. package/dist/engine/pipeline/intent_signal_extractor.js +0 -370
  1104. package/dist/engine/pipeline/intent_signal_extractor.js.map +0 -1
  1105. package/dist/engine/pipeline/route_types.d.ts +0 -10
  1106. package/dist/engine/pipeline/route_types.d.ts.map +0 -1
  1107. package/dist/engine/pipeline/route_types.js +0 -9
  1108. package/dist/engine/pipeline/route_types.js.map +0 -1
  1109. package/dist/engine/pipeline/stage_gate_engine.d.ts +0 -34
  1110. package/dist/engine/pipeline/stage_gate_engine.d.ts.map +0 -1
  1111. package/dist/engine/pipeline/stage_gate_engine.js +0 -123
  1112. package/dist/engine/pipeline/stage_gate_engine.js.map +0 -1
  1113. package/dist/engine/pipeline/stage_prechecks.d.ts +0 -83
  1114. package/dist/engine/pipeline/stage_prechecks.d.ts.map +0 -1
  1115. package/dist/engine/pipeline/stage_prechecks.js +0 -199
  1116. package/dist/engine/pipeline/stage_prechecks.js.map +0 -1
  1117. package/dist/engine/workflow/legacy_type_migration.d.ts +0 -64
  1118. package/dist/engine/workflow/legacy_type_migration.d.ts.map +0 -1
  1119. package/dist/engine/workflow/legacy_type_migration.js +0 -233
  1120. package/dist/engine/workflow/legacy_type_migration.js.map +0 -1
  1121. package/dist/server/tools/tool_groups/classify_expand.d.ts +0 -3
  1122. package/dist/server/tools/tool_groups/classify_expand.d.ts.map +0 -1
  1123. package/dist/server/tools/tool_groups/classify_expand.js +0 -7
  1124. package/dist/server/tools/tool_groups/classify_expand.js.map +0 -1
  1125. package/dist/server/tools/tool_groups/classify_handler.d.ts +0 -3
  1126. package/dist/server/tools/tool_groups/classify_handler.d.ts.map +0 -1
  1127. package/dist/server/tools/tool_groups/classify_handler.js +0 -65
  1128. package/dist/server/tools/tool_groups/classify_handler.js.map +0 -1
  1129. package/dist/server/tools/tool_groups/expand_handler.d.ts +0 -3
  1130. package/dist/server/tools/tool_groups/expand_handler.d.ts.map +0 -1
  1131. package/dist/server/tools/tool_groups/expand_handler.js +0 -813
  1132. package/dist/server/tools/tool_groups/expand_handler.js.map +0 -1
  1133. package/dist/server/tools/tool_groups/status_plan_analyze_review.d.ts +0 -4
  1134. package/dist/server/tools/tool_groups/status_plan_analyze_review.d.ts.map +0 -1
  1135. package/dist/server/tools/tool_groups/status_plan_analyze_review.js +0 -421
  1136. package/dist/server/tools/tool_groups/status_plan_analyze_review.js.map +0 -1
  1137. package/dist/server/tools/tool_groups/verify_learn.d.ts +0 -3
  1138. package/dist/server/tools/tool_groups/verify_learn.d.ts.map +0 -1
  1139. package/dist/server/tools/tool_groups/verify_learn.js +0 -952
  1140. package/dist/server/tools/tool_groups/verify_learn.js.map +0 -1
  1141. package/templates/internal/patterns//351/233/266/351/205/215/347/275/256/345/210/235/345/247/213/345/214/226.md +0 -64
@@ -1,952 +0,0 @@
1
- // ── sf_verify、sf_record_verification_execution、sf_learn 工具注册 ──
2
- // 从 tools.ts 第 2578-3300 行提取。
3
- import path from "node:path";
4
- import { promises as fsp } from "node:fs";
5
- import crypto from "node:crypto";
6
- import { internalWarn } from "../../../engine/core/logger.js";
7
- import { isSameOrDescendantPath } from "../../../engine/core/path_scope_utils.js";
8
- import { detectTaskStage } from "../../../engine/pipeline/task_stage_detector.js";
9
- import { verifyArtifact } from "../../../engine/contracts/artifact_contract_registry.js";
10
- import { verifyRouteDecisionContract } from "../../../engine/contracts/route_decision_contract_verifier.js";
11
- import { scanArtifactForOmissions } from "../../../engine/contracts/omission_scanner.js";
12
- import { detectLazyPatterns } from "../../../engine/contracts/lazy_pattern_detector.js";
13
- import { verifyErrorHandlingPaths } from "../../../engine/contracts/error_path_verifier.js";
14
- import { verifyBehaviorCoverage } from "../../../engine/contracts/behavior_coverage_verifier.js";
15
- import { inferArtifactKindFromPath } from "../../../bin/commands/check_write.js";
16
- import { TOOL_DIAGNOSTIC_CODES } from "../../../engine/audit/diagnostic_registry.js";
17
- import { createToolRegistrar } from "../middleware.js";
18
- import { VerifySchema, RecordVerificationExecutionSchema, LearnSchema } from "../schemas.js";
19
- import { lazyVerifier, lazyEvolver, lazyTraceability, lazyOodSolid, lazyBackendImplementation, lazyCodeObservability, lazyDesignArtifactPack, lazyStandardAssetContract, lazyVerificationContract, lazyEnforcementGuard, lazyFailureReport, lazyDegradation, } from "../lazy_loaders.js";
20
- import { errorMessage } from "../../../engine/core/helpers.js";
21
- export async function registerVerifyLearnTools(ctx) {
22
- const { registerSafeTool, loadRelevantAnchors } = createToolRegistrar(ctx);
23
- const { taskContext, config, projectPath, ioController, knowledgeIndex } = ctx;
24
- // ── sf_verify: 生成验证命令(构建、测试、验收检查) ──
25
- registerSafeTool("sf_verify", "根据变更文件生成验证命令(构建、测试、验收检查),由 Claude Code Bash 执行", VerifySchema, async (args) => {
26
- const loadedCtx = await taskContext.load(args.task_id);
27
- if (!loadedCtx) {
28
- return {
29
- result: { error: "任务不存在" },
30
- };
31
- }
32
- // Phase 9a: 知识感知 — 加载阶段匹配的审查规则、代码模式和检查清单
33
- if (knowledgeIndex) {
34
- const stage = detectTaskStage(loadedCtx);
35
- const reviewRules = knowledgeIndex.query({
36
- type: "review_rule",
37
- stages: stage ? [stage] : undefined,
38
- limit: 5,
39
- });
40
- const codePatterns = knowledgeIndex.query({
41
- type: "pattern",
42
- stages: stage ? [stage] : undefined,
43
- limit: 3,
44
- });
45
- const checklists = knowledgeIndex.query({
46
- type: "checklist",
47
- stages: stage ? [stage] : undefined,
48
- limit: 2,
49
- });
50
- loadedCtx.review_knowledge_hints = [...reviewRules, ...codePatterns, ...checklists]
51
- .map(e => e.body ?? e.when).filter(Boolean);
52
- await taskContext.save(loadedCtx);
53
- }
54
- // P2-C: changed_files 单一来源 — args 优先,其次 TaskContext.execution.changed_files
55
- // 若两者均空,尝试 git diff 扫描未追踪修改(best-effort)
56
- let resolvedChangedFiles = args.changed_files;
57
- if (resolvedChangedFiles.length === 0) {
58
- const ctxChanged = loadedCtx.execution?.changed_files ?? [];
59
- if (ctxChanged.length > 0) {
60
- resolvedChangedFiles = ctxChanged;
61
- }
62
- else {
63
- // best-effort: 扫描 git diff 检测未声明变更
64
- try {
65
- const { execFile } = await import("node:child_process");
66
- const { promisify } = await import("node:util");
67
- const execFileP = promisify(execFile);
68
- const { stdout } = await execFileP("git", ["diff", "--name-only", "HEAD"], { cwd: projectPath, timeout: 5000 });
69
- resolvedChangedFiles = stdout.split("\n").map((s) => s.trim()).filter(Boolean);
70
- if (resolvedChangedFiles.length > 0) {
71
- if (typeof console !== "undefined" && typeof console.warn === "function") {
72
- internalWarn("[sf_verify]", `changed_files 未声明,从 git diff 检测到 ${resolvedChangedFiles.length} 个变更文件`);
73
- }
74
- }
75
- }
76
- catch {
77
- // git 不可用 / 非 git 仓库 — 跳过
78
- }
79
- }
80
- }
81
- const implementationFiles = resolvedChangedFiles.filter((file) => /\.(?:ts|tsx|js|jsx|java|kt|cs|go|py)$/.test(file)
82
- && !/(?:^|\/)tests?\//.test(file));
83
- // P2-B2: 验证前记录文件 baseline,便于失败后通过 sf_status action=rollback_files 检测变更
84
- if (resolvedChangedFiles.length > 0) {
85
- try {
86
- await taskContext.recordFileBaseline(args.task_id, resolvedChangedFiles);
87
- }
88
- catch (e) {
89
- if (typeof console !== "undefined" && typeof console.warn === "function") {
90
- internalWarn("[sf_verify]", "记录 file_baseline 失败: " + (e instanceof Error ? e.message : String(e)));
91
- }
92
- }
93
- }
94
- if (implementationFiles.length > 0) {
95
- const implementationContents = {};
96
- for (const changedFile of implementationFiles) {
97
- const absoluteFile = path.resolve(projectPath, changedFile);
98
- try {
99
- if (isSameOrDescendantPath(absoluteFile, path.resolve(projectPath), { caseSensitive: false }) && (await fsp.stat(absoluteFile)).isFile()) {
100
- implementationContents[changedFile] = await fsp.readFile(absoluteFile, "utf-8");
101
- }
102
- }
103
- catch {
104
- // 文件缺失会由验证命令或现有产物检查报告。
105
- }
106
- }
107
- const traceabilityModule = await lazyTraceability();
108
- const traceVerification = traceabilityModule.verifyChangedFilesAgainstDesignTraceability(projectPath, implementationFiles, loadedCtx);
109
- if (!traceVerification.passed) {
110
- loadedCtx.traceability_binding = {
111
- requirement_ids: traceVerification.binding_ids.filter((id) => id.startsWith("REQ-")),
112
- prototype_ids: traceVerification.binding_ids.filter((id) => id.startsWith("PROTO-")),
113
- architecture_ids: traceVerification.binding_ids.filter((id) => id.startsWith("ARCH-")),
114
- detail_design_ids: traceVerification.binding_ids.filter((id) => id.startsWith("DD-")),
115
- phase_ids: traceVerification.binding_ids.filter((id) => id.startsWith("PHASE-")),
116
- slice_ids: traceVerification.binding_ids.filter((id) => id.startsWith("SLICE-")),
117
- acceptance_ids: traceVerification.binding_ids.filter((id) => id.startsWith("AC-")),
118
- status: "missing",
119
- findings: traceVerification.findings.map((finding) => `${finding.code}: ${finding.message_zh}`),
120
- };
121
- await taskContext.save(loadedCtx);
122
- return {
123
- result: {
124
- error: "编码变更未绑定需求/原型/设计/切片/验收追踪链路,需修复后重验",
125
- status: "blocked",
126
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.traceabilityVerifyFailed,
127
- traceability_findings: traceVerification.findings,
128
- recovery: "补齐追踪矩阵并在任务中绑定 PHASE-*、SLICE-*、DD-*、AC-* 后重新执行 sf_verify",
129
- },
130
- };
131
- }
132
- const oodModule = await lazyOodSolid();
133
- const oodGate = oodModule.evaluateOodDesignGate({
134
- task_id: args.task_id,
135
- intent: loadedCtx.intent,
136
- route: loadedCtx.expansion?.workflow_trace?.route,
137
- changed_files: implementationFiles,
138
- summary: loadedCtx.ood_solid_summary,
139
- });
140
- if (!oodGate.allowed) {
141
- return {
142
- result: {
143
- error: oodGate.reason_zh,
144
- status: "blocked",
145
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.oodMissingSummary,
146
- ood_solid_summary: oodGate.required_summary,
147
- recovery: "完成 OOD/SOLID 摘要后重新执行 sf_expand 与 sf_verify",
148
- },
149
- };
150
- }
151
- const backendModule = await lazyBackendImplementation();
152
- const backendGate = backendModule.evaluateBackendImplementationGate({
153
- task_id: args.task_id,
154
- intent: loadedCtx.intent,
155
- route: loadedCtx.expansion?.workflow_trace?.route,
156
- changed_files: implementationFiles,
157
- work_package: loadedCtx.backend_implementation_work_package,
158
- });
159
- if (!backendGate.allowed) {
160
- return {
161
- result: {
162
- error: backendGate.reason_zh,
163
- status: "blocked",
164
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.backendMissingSummary,
165
- backend_implementation_work_package: backendGate.work_package,
166
- recovery: "完成后端工程工作包后重新执行 sf_expand 与 sf_verify",
167
- },
168
- };
169
- }
170
- const solidFindings = oodGate.applicable ? oodModule.reviewSolidCode(implementationContents) : [];
171
- const backendFindings = backendGate.applicable ? backendModule.reviewBackendImplementationFiles(implementationContents) : [];
172
- if (backendGate.applicable) {
173
- const openApiPath = path.join(projectPath, "docs", "api", "openapi.yaml");
174
- const apiMarkdownPath = path.join(projectPath, "docs", "architecture", "03-API接口规格文档.md");
175
- const migrationDirectory = path.join(projectPath, "db", "migrations");
176
- const openapiText = await fsp.access(openApiPath).then(() => true, () => false) ? await fsp.readFile(openApiPath, "utf-8") : undefined;
177
- const apiDocumentText = await fsp.access(apiMarkdownPath).then(() => true, () => false) ? await fsp.readFile(apiMarkdownPath, "utf-8") : undefined;
178
- let migrationText;
179
- if (await fsp.access(migrationDirectory).then(() => true, () => false)) {
180
- const migrationFiles = (await fsp.readdir(migrationDirectory)).filter((name) => /\.sql$/i.test(name));
181
- const migrationContents = await Promise.all(migrationFiles.map((name) => fsp.readFile(path.join(migrationDirectory, name), "utf-8")));
182
- migrationText = migrationContents.join("\n");
183
- }
184
- backendFindings.push(...backendModule.verifyBackendArtifactAlignment({
185
- openapiText,
186
- apiDocumentText,
187
- migrationText,
188
- sourceFiles: implementationContents,
189
- }));
190
- }
191
- loadedCtx.ood_solid_findings = solidFindings;
192
- loadedCtx.backend_implementation_findings = backendFindings;
193
- await taskContext.save(loadedCtx);
194
- if (oodModule.hasBlockingSolidFindings(solidFindings)) {
195
- return {
196
- result: {
197
- error: "OOD/SOLID 代码复验发现阻断项,需修复后重验",
198
- status: "blocked",
199
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.oodDeliveryBlock,
200
- ood_solid_findings: solidFindings,
201
- },
202
- };
203
- }
204
- if (backendModule.hasBlockingBackendFindings(backendFindings)) {
205
- return {
206
- result: {
207
- error: "后端实现工程复验发现阻断项,需修复后重验",
208
- status: "blocked",
209
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.backendDeliveryBlock,
210
- backend_implementation_findings: backendFindings,
211
- },
212
- };
213
- }
214
- // 问题六十八: 代码可维护性与可观测性契约
215
- const codeObsModule = await lazyCodeObservability();
216
- const obsFindings = codeObsModule.verifyChangedFilesObservability({
217
- changed_files: implementationFiles,
218
- file_contents: implementationContents,
219
- intent: loadedCtx.intent,
220
- });
221
- loadedCtx.code_observability_findings = obsFindings;
222
- await taskContext.save(loadedCtx);
223
- if (codeObsModule.hasBlockingObservabilityFindings(obsFindings)) {
224
- return {
225
- result: {
226
- error: "代码可维护性/可观测性复验发现阻断项,需修复后重验",
227
- status: "blocked",
228
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.codeObservabilityFinding,
229
- code_observability_findings: obsFindings,
230
- },
231
- };
232
- }
233
- }
234
- // 问题六十二: 设计产物验证必须读取用户项目真实文件,不接受占位合同自证通过。
235
- const verifyWorkflowIntent = loadedCtx.route_decision?.workflow_intent ?? loadedCtx.classification?.route_decision?.workflow_intent;
236
- const touchesDesignArtifacts = args.changed_files.some((file) => /docs\/architecture\/|docs\/api\/|openapi|db\/(?:migrations|schema)|架构设计|数据库设计|API接口规格/i.test(file));
237
- if (verifyWorkflowIntent === "architecture_design" || touchesDesignArtifacts) {
238
- const designModule = await lazyDesignArtifactPack();
239
- const designPack = loadedCtx.design_artifact_pack ?? designModule.createDesignArtifactPack(args.task_id);
240
- const designVerification = designModule.verifyDesignArtifactPack(projectPath, designPack);
241
- loadedCtx.design_artifact_pack = {
242
- ...designPack,
243
- status: designVerification.status,
244
- findings: designVerification.findings,
245
- baseline_hashes: designVerification.hashes,
246
- verified_at: new Date().toISOString(),
247
- };
248
- await taskContext.save(loadedCtx);
249
- if (!designVerification.passed) {
250
- return {
251
- result: {
252
- error: "设计产物包复验未通过,不得继续生成编码或交付结论",
253
- status: "blocked",
254
- diagnostic_code: "SF-DESIGN-PACK-VERIFY-FAILED",
255
- design_artifact_findings: designVerification.findings,
256
- checked_files: designVerification.checked_files,
257
- recovery: "修复设计产物、补充用户确认并重新执行 sf_verify;不得只提交报告绕过缺口",
258
- },
259
- };
260
- }
261
- }
262
- // 问题六十三: 模板契约验证 — 按文件逐一匹配契约并校验
263
- // P0-C1 关键修复: 进入 contract 检查前先转 verifying,确保后续 blocked 返回路径
264
- // 都处于 verifying 状态。否则 sf_learn 会因 executing → learning 不在 VALID_TRANSITIONS
265
- // 而失败,导致 repair_reverify_directive 永远无法被清除。
266
- //
267
- // 关键约束: validateAndUpdateStatus (status_transitions.ts L53-60) 要求
268
- // executing → verifying 必须有 execution evidence (changed_files/failure_history/
269
- // no_change_artifact)。所以只在 args.changed_files 非空时才提前转 — 此时通过
270
- // setExecution 注入证据即可。changed_files=[] 路径保留原语义:保持 executing,
271
- // 让后续 P0-C1 在证据收集后自然阻断。
272
- const hasExecutionEvidence = args.changed_files.length > 0 ||
273
- (loadedCtx.execution && loadedCtx.execution.changed_files.length > 0) ||
274
- (loadedCtx.execution && loadedCtx.execution.failure_history.length > 0) ||
275
- loadedCtx.execution?.no_change_artifact === true;
276
- if (hasExecutionEvidence) {
277
- if (loadedCtx.status === "retrying") {
278
- // retrying → executing 需要 expansion(status_transitions.ts L78-82)
279
- await taskContext.updateStatus(args.task_id, "executing");
280
- loadedCtx.status = "executing";
281
- }
282
- if (loadedCtx.status === "executing") {
283
- // 提前记录 execution evidence,否则 updateStatus("verifying") 会因
284
- // "事实缺失" 抛出,被 middleware 捕获并标记 failed
285
- if (args.changed_files.length > 0) {
286
- await taskContext.setExecution(args.task_id, args.changed_files);
287
- }
288
- await taskContext.updateStatus(args.task_id, "verifying");
289
- loadedCtx.status = "verifying";
290
- }
291
- }
292
- const sacModule = await lazyStandardAssetContract();
293
- const formalArtifactContract = sacModule.matchTemplateContract({
294
- output_artifact_kind: loadedCtx.artifact_output?.kind,
295
- workflow_intent: verifyWorkflowIntent,
296
- route_decision: loadedCtx.route_decision?.workflow_intent,
297
- });
298
- if (formalArtifactContract || !sacModule.isLowRiskTask({
299
- route_decision: verifyWorkflowIntent ?? loadedCtx.classification?.route_decision?.workflow_intent,
300
- workflow_intent: verifyWorkflowIntent,
301
- changed_files: args.changed_files,
302
- })) {
303
- for (const changedFile of args.changed_files) {
304
- const absFile = path.join(projectPath, changedFile);
305
- if (!await fsp.access(absFile).then(() => true, () => false) || !/\.md$/.test(changedFile))
306
- continue;
307
- // 按实际文件路径匹配契约(不再使用 changed_files[0] 的契约校验全部文件)
308
- const perFileContract = sacModule.matchTemplateContract({
309
- output_artifact_kind: loadedCtx.artifact_output?.kind,
310
- workflow_intent: verifyWorkflowIntent,
311
- route_decision: loadedCtx.route_decision?.workflow_intent,
312
- file_path: changedFile,
313
- });
314
- if (!perFileContract)
315
- continue;
316
- const content = await fsp.readFile(absFile, "utf-8");
317
- // 草稿阻断下游消费 — 不再静默跳过
318
- if (sacModule.isDraftDocument(content)) {
319
- loadedCtx.repair_reverify_directive = {
320
- contract_id: perFileContract.asset_id,
321
- file_path: changedFile,
322
- status: "draft_blocked",
323
- repair_suggestion: `文件 ${changedFile} 仍为草稿状态,草稿不可用于实现。请完善内容后重新验证。`,
324
- blocked: true,
325
- };
326
- // P0-C1: 设置 skip_verification_reason 让后续 sf_learn 能从 verifying 转 learning
327
- // 否则 status_transitions.ts L62-66 会因缺 verification 拒绝转换,导致 directive 永远卡住
328
- loadedCtx.skip_verification_reason = `contract_draft_blocked:${changedFile}`;
329
- await taskContext.save(loadedCtx);
330
- return {
331
- result: {
332
- error: `草稿文件 ${changedFile} 不可用于实现,需完善后重新验证`,
333
- status: "blocked",
334
- diagnostic_code: "SF-CONTRACT-DRAFT",
335
- template_contract_id: perFileContract.asset_id,
336
- recovery: "完善草稿内容后重新执行 sf_verify",
337
- },
338
- };
339
- }
340
- const contractResult = sacModule.verifyOutputAgainstContract(perFileContract, content, projectPath);
341
- if (!contractResult.passed) {
342
- const repairDirective = sacModule.createRepairReverifyDirective(perFileContract, contractResult);
343
- loadedCtx.repair_reverify_directive = {
344
- contract_id: perFileContract.asset_id,
345
- file_path: changedFile,
346
- status: "repair_required",
347
- repair_suggestion: repairDirective.repair_suggestion,
348
- blocked: true,
349
- };
350
- // P0-C1: 同上 — 让 sf_learn 能从 verifying 转 learning
351
- loadedCtx.skip_verification_reason = `contract_repair_required:${changedFile}`;
352
- await taskContext.save(loadedCtx);
353
- return {
354
- result: {
355
- error: `文件 ${changedFile} 模板契约验证未通过,进入修复重验闭环`,
356
- status: "blocked",
357
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.contractDraft,
358
- template_contract_id: perFileContract.asset_id,
359
- missing_fields: contractResult.missing_fields,
360
- messages: contractResult.messages,
361
- repair_suggestion: repairDirective.repair_suggestion,
362
- recovery: "修复文档缺口后重新执行 sf_verify;不得只报告不修复",
363
- },
364
- };
365
- }
366
- }
367
- // 全部契约验证通过 — 清零修复重验指令
368
- if (loadedCtx.repair_reverify_directive) {
369
- delete loadedCtx.repair_reverify_directive;
370
- await taskContext.save(loadedCtx);
371
- }
372
- }
373
- // ── 遗漏扫描:检测空洞章节、占位符、空表格(防 AI 偷懒) ──
374
- const omissionScannedFiles = [];
375
- const allOmissionFindings = [];
376
- for (const changedFile of args.changed_files) {
377
- if (!/\.md$/.test(changedFile))
378
- continue;
379
- const kind = inferArtifactKindFromPath(changedFile);
380
- if (!kind)
381
- continue;
382
- const absFile = path.join(projectPath, changedFile);
383
- if (!await fsp.access(absFile).then(() => true, () => false))
384
- continue;
385
- const content = await fsp.readFile(absFile, "utf-8");
386
- if (content.length < 100)
387
- continue; // 初始写入跳过
388
- const omissionResult = scanArtifactForOmissions(kind, content, {
389
- generate_adversarial_prompt: true,
390
- });
391
- if (omissionResult.findings.length > 0) {
392
- omissionScannedFiles.push(changedFile);
393
- allOmissionFindings.push({ file: changedFile, findings: omissionResult.findings });
394
- }
395
- if (!omissionResult.passed) {
396
- const hardFails = omissionResult.findings.filter((f) => f.severity === "hard_fail");
397
- const reasons = hardFails.map((f) => f.message).join(";");
398
- await taskContext.save(loadedCtx);
399
- return {
400
- result: {
401
- error: `产物遗漏扫描失败(${changedFile}):${reasons}`,
402
- status: "blocked",
403
- diagnostic_code: "SF-OMISSION-SCAN-FAILED",
404
- recovery: `补齐以下缺失内容后重新执行 sf_verify:${reasons}`,
405
- },
406
- };
407
- }
408
- }
409
- // 将遗漏扫描结果写入 VerifyResult(通过 loadedCtx 传递到最终结果组装)
410
- if (omissionScannedFiles.length > 0) {
411
- const totalFindings = allOmissionFindings.reduce((s, o) => s + o.findings.length, 0);
412
- const hardFailCount = allOmissionFindings.reduce((s, o) => s + o.findings.filter((f) => f.severity === "hard_fail").length, 0);
413
- // 生成对抗性 prompt(取第一个有 findings 的文件的 prompt)
414
- const firstResultWithPrompt = allOmissionFindings[0];
415
- loadedCtx.omission_scan_result = {
416
- scanned_files: omissionScannedFiles,
417
- total_findings: totalFindings,
418
- hard_fail_count: hardFailCount,
419
- summary: hardFailCount > 0
420
- ? `❌ 遗漏扫描发现 ${totalFindings} 项问题(${hardFailCount} 个阻塞)`
421
- : `⚠️ 遗漏扫描发现 ${totalFindings} 个警告`,
422
- adversarial_prompt: firstResultWithPrompt?.findings.length
423
- ? `对文件 ${firstResultWithPrompt.file} 执行深度遗漏审计`
424
- : undefined,
425
- };
426
- await taskContext.save(loadedCtx);
427
- }
428
- // ── 步骤 7a: 偷懒模式检测(.ts 文件) ──
429
- let lazyPatternHardFails = 0;
430
- let lazyPatternWarnings = 0;
431
- for (const changedFile of args.changed_files) {
432
- if (!/\.ts$/.test(changedFile) || /\.d\.ts$/.test(changedFile))
433
- continue;
434
- const absFile = path.join(projectPath, changedFile);
435
- if (!await fsp.access(absFile).then(() => true, () => false))
436
- continue;
437
- const content = await fsp.readFile(absFile, "utf-8");
438
- const findings = detectLazyPatterns(content, changedFile);
439
- const hfs = findings.filter((f) => f.severity === "hard_fail");
440
- const wfs = findings.filter((f) => f.severity === "warning");
441
- lazyPatternHardFails += hfs.length;
442
- lazyPatternWarnings += wfs.length;
443
- if (hfs.length > 0) {
444
- const reasons = hfs.map((f) => f.message).join(";");
445
- await taskContext.save(loadedCtx);
446
- return {
447
- result: {
448
- error: `代码偷懒模式检测失败(${changedFile}):${reasons}`,
449
- status: "blocked",
450
- diagnostic_code: "SF-LAZY-PATTERN-DETECTED",
451
- recovery: `修复以下代码质量问题后重新执行 sf_verify:${reasons}`,
452
- },
453
- };
454
- }
455
- }
456
- // ── 步骤 7b: 错误处理路径验证(.ts 文件) ──
457
- let errorPathHardFails = 0;
458
- for (const changedFile of args.changed_files) {
459
- if (!/\.ts$/.test(changedFile) || /\.d\.ts$/.test(changedFile))
460
- continue;
461
- const absFile = path.join(projectPath, changedFile);
462
- if (!await fsp.access(absFile).then(() => true, () => false))
463
- continue;
464
- const content = await fsp.readFile(absFile, "utf-8");
465
- const findings = verifyErrorHandlingPaths(content, changedFile);
466
- const hfs = findings.filter((f) => f.severity === "hard_fail");
467
- errorPathHardFails += hfs.length;
468
- if (hfs.length > 0) {
469
- const reasons = hfs.map((f) => f.message).join(";");
470
- await taskContext.save(loadedCtx);
471
- return {
472
- result: {
473
- error: `错误处理路径验证失败(${changedFile}):${reasons}`,
474
- status: "blocked",
475
- diagnostic_code: "SF-ERROR-PATH-VERIFICATION-FAILED",
476
- recovery: `修复以下错误处理问题后重新执行 sf_verify:${reasons}`,
477
- },
478
- };
479
- }
480
- }
481
- // ── 步骤 7c: 行为覆盖率检查 ──
482
- const coverageFindings = verifyBehaviorCoverage(args.changed_files, projectPath);
483
- const coverageWarnings = coverageFindings.length;
484
- // ── 汇总 code_quality 结果到 loadedCtx ──
485
- if (lazyPatternHardFails > 0 || lazyPatternWarnings > 0 || errorPathHardFails > 0 || coverageWarnings > 0) {
486
- loadedCtx.code_quality_result = {
487
- lazy_pattern_findings: lazyPatternHardFails + lazyPatternWarnings,
488
- error_path_findings: errorPathHardFails,
489
- test_quality_hard_fails: 0,
490
- mutation_hard_fails: 0,
491
- behavior_coverage_warnings: coverageWarnings,
492
- summary: `偷懒模式: ${lazyPatternHardFails} 阻塞/${lazyPatternWarnings} 警告;错误路径: ${errorPathHardFails};行为覆盖: ${coverageWarnings} 警告`,
493
- };
494
- await taskContext.save(loadedCtx);
495
- }
496
- // RouteDecision 合同验证 — 无条件,在状态预检之前
497
- const rdFromCtx = loadedCtx.route_decision ?? loadedCtx.classification?.route_decision ?? null;
498
- const wtFromCtx = loadedCtx.workflow_trace ?? loadedCtx.expansion?.workflow_trace ?? null;
499
- const rdContractInput = {
500
- route_decision: rdFromCtx,
501
- workflow_trace: wtFromCtx,
502
- expansion_input_materials: loadedCtx.expansion?.input_materials?.map((m) => ({ path_or_ref: m.path_or_ref })),
503
- expansion_output_artifact: loadedCtx.artifact_output ? { kind: loadedCtx.artifact_output.kind, path: loadedCtx.artifact_output.path } : null,
504
- expansion_constraints: loadedCtx.expansion?.contract?.constraints,
505
- };
506
- const rdFindings = verifyRouteDecisionContract(rdContractInput);
507
- const hasHardFail = rdFindings.some(f => f.severity === "hard_fail" || f.severity === "blocked");
508
- if (hasHardFail) {
509
- return {
510
- result: {
511
- error: "RouteDecision 合同检查失败",
512
- route_decision_contract_findings: rdFindings,
513
- status: "blocked",
514
- },
515
- };
516
- }
517
- // P0-C1 修正: 允许 "verifying" 状态再次进入 sf_verify
518
- // 场景: ver1 因 contract 草稿阻断返回 blocked(contract 路径已转 verifying);
519
- // 用户修复文件后直接 ver2,中间未走 sf_learn → 任务仍处于 verifying。
520
- // 此处必须放行,否则反复阻断用户重验。
521
- const VALID_VERIFY_STATES = ["executing", "retrying", "verifying"];
522
- if (!VALID_VERIFY_STATES.includes(loadedCtx.status)) {
523
- return {
524
- result: { error: `任务状态 ${loadedCtx.status} 不可验证,需要 executing、retrying 或 verifying`, status: loadedCtx.status },
525
- };
526
- }
527
- const acceptanceItems = loadedCtx.expansion
528
- ? [...loadedCtx.expansion.acceptance.automated, ...loadedCtx.expansion.acceptance.manual]
529
- : [];
530
- // H4: 工作区完整性检查 — advisory 模式,仅警告不阻断
531
- const integrity = await ioController.verify();
532
- const h4Warning = !integrity.clean
533
- ? { warning: `H4 advisory: ${integrity.message}`, dirty_files: integrity.dirty_files }
534
- : undefined;
535
- const verifyResult = (await lazyVerifier()).generateVerifyCommands(config, args.changed_files, acceptanceItems, loadedCtx?.expansion?.workflow_trace?.route);
536
- verifyResult.task_id = args.task_id;
537
- // 创建 VerificationPlan(plan_only,非执行结果)
538
- const vcModule = await lazyVerificationContract();
539
- const allCommands = [
540
- ...(verifyResult.checks?.build ?? []),
541
- ...(verifyResult.checks?.tests ?? []),
542
- ].map((c) => c.command);
543
- const vPlan = vcModule.createVerificationPlan(args.task_id, allCommands, acceptanceItems.map((a) => a.description));
544
- // sf_verify 仅生成计划,不执行命令 — 始终保存 not_executed
545
- // 真实执行结果必须通过 recordVerificationExecution 单独录入
546
- const vResult = vcModule.createNotExecutedResult(args.task_id, vPlan.plan_id, "sf_verify 生成命令,等待执行");
547
- // 存储验证契约到任务上下文
548
- const ctxForV = await taskContext.load(args.task_id);
549
- if (ctxForV) {
550
- ctxForV.verification_plan = vPlan;
551
- ctxForV.verification_result = vResult;
552
- await taskContext.save(ctxForV);
553
- }
554
- // 产物生命周期检查: draft → verified 需要 ArtifactVerificationResult.passed
555
- let artifactVerificationResult;
556
- let artifactFileMissing = false;
557
- if (loadedCtx.artifact_output && loadedCtx.artifact_output.status === "draft") {
558
- // 验证前解析产物文件并计算 hash
559
- const artifact = loadedCtx.artifact_output;
560
- const fullPath = path.join(projectPath, artifact.path);
561
- if (await fsp.access(fullPath).then(() => true, () => false)) {
562
- const fileContent = await fsp.readFile(fullPath);
563
- const hash = crypto.createHash("sha256").update(fileContent).digest("hex");
564
- artifact.hash = `sha256:${hash}`;
565
- if (!artifact.evidence_refs.some(r => r.startsWith("file:artifact:"))) {
566
- artifact.evidence_refs.push(`file:artifact:path=${artifact.path} hash=sha256:${hash}`);
567
- }
568
- // 保存更新后的产物(含 hash)
569
- const ctxForHash = await taskContext.load(args.task_id);
570
- if (ctxForHash?.artifact_output) {
571
- ctxForHash.artifact_output.hash = artifact.hash;
572
- if (!ctxForHash.artifact_output.evidence_refs.some(r => r.startsWith("file:artifact:"))) {
573
- ctxForHash.artifact_output.evidence_refs.push(`file:artifact:path=${artifact.path} hash=sha256:${hash}`);
574
- }
575
- await taskContext.save(ctxForHash);
576
- }
577
- }
578
- else {
579
- artifactFileMissing = true;
580
- }
581
- artifactVerificationResult = verifyArtifact(artifact.kind, artifact);
582
- }
583
- // 记录变更文件
584
- // 写入护栏 — 检查变更文件是否在允许范围
585
- if (args.changed_files.length > 0) {
586
- const guardModule = await lazyEnforcementGuard();
587
- const scopePaths = loadedCtx.expansion?.scope?.allowed_paths ?? [];
588
- for (const cf of args.changed_files) {
589
- const writeFindings = guardModule.evaluateWriteGuard(loadedCtx.classification?.route_decision?.route ?? "code_execution", cf, scopePaths, "command_execution_contract");
590
- if (writeFindings.some((f) => f.blocked)) {
591
- return {
592
- result: {
593
- error: `写入护栏阻断: ${writeFindings[0].reason_zh}`,
594
- blocked_file: cf,
595
- guard_id: writeFindings[0].guard_id,
596
- },
597
- };
598
- }
599
- }
600
- }
601
- await taskContext.setExecution(args.task_id, args.changed_files);
602
- // 无实际文件变更但存在产物时标记 no_change_artifact
603
- if (args.changed_files.length === 0 && loadedCtx.artifact_output) {
604
- const execCtx = await taskContext.load(args.task_id);
605
- if (execCtx?.execution) {
606
- execCtx.execution.no_change_artifact = true;
607
- await taskContext.save(execCtx);
608
- }
609
- }
610
- // P0-C1 修正: 预检 execution evidence,避免 updateStatus 抛出后被 middleware 标记 failed
611
- // 当 changed_files/failure_history/no_change_artifact 均缺失时,返回 blocked 让用户补全证据
612
- // 而不是抛异常导致任务永久卡 failed
613
- {
614
- const execCtx = await taskContext.load(args.task_id);
615
- const hasChangedFiles = execCtx?.execution && execCtx.execution.changed_files.length > 0;
616
- const hasFailureHistory = execCtx?.execution && execCtx.execution.failure_history.length > 0;
617
- const hasNoChangeArtifact = execCtx?.execution?.no_change_artifact === true;
618
- if (!hasChangedFiles && !hasFailureHistory && !hasNoChangeArtifact) {
619
- return {
620
- result: {
621
- error: "事实缺失: executing → verifying 需要 execution evidence (changed_files / failure_history / no_change_artifact)",
622
- status: "blocked",
623
- diagnostic_code: "SF-VERIFY-EXECUTION-EVIDENCE-MISSING",
624
- recovery: "执行代码改动后通过 changed_files 参数传入变更文件列表,或显式声明 no_change_artifact=true,或先调用 sf_record_verification_execution 录入执行记录",
625
- },
626
- };
627
- }
628
- }
629
- // P0-C1: 状态已在 VALID_VERIFY_STATES 检查后尽早转为 verifying,
630
- // 此处不再重复 updateStatus(verifying → verifying 不合法,会抛异常)
631
- // 但若早转条件未触发(changed_files=[] 且无 execution 证据),仍需把
632
- // executing → verifying 转换 — 此时 evidence 已在上方 setExecution/no_change_artifact
633
- // 路径补齐,可安全转换。
634
- if (loadedCtx.status === "executing") {
635
- await taskContext.updateStatus(args.task_id, "verifying");
636
- }
637
- // 状态转换后刷新 loadedCtx — 后续 contract 检查可能要 save loadedCtx,
638
- // 若用 stale status 会把磁盘上 "verifying" 覆盖回 "executing"
639
- loadedCtx.status = "verifying";
640
- // 存储验证结果
641
- await taskContext.setVerification(args.task_id, verifyResult);
642
- // P0-C1 修复: setExecution / setVerification 都在内部 load+save,磁盘已最新;
643
- // 但内存中的 loadedCtx 是函数开头 load 的旧快照,缺 execution / verification 字段。
644
- // 后续若直接 save(loadedCtx) 会把磁盘覆盖回 undefined,导致证据缺失、attempt_count 丢失。
645
- // 这里浅拷贝磁盘最新字段到 loadedCtx(保留引用,已被上游闭包捕获)。
646
- const freshCtx = await taskContext.load(args.task_id);
647
- if (freshCtx) {
648
- Object.assign(loadedCtx, freshCtx);
649
- }
650
- // P1-B6: 用户一次性提交执行结果时自动录入,避免漏录导致 evidence 门禁阻断
651
- const verifyExec = args.verify_execution;
652
- if (verifyExec && verifyExec.length > 0) {
653
- try {
654
- const crypto = await import("node:crypto");
655
- const vcMod = await lazyVerificationContract();
656
- const currentPlan = (await taskContext.load(args.task_id))?.verification_plan;
657
- if (!currentPlan) {
658
- // 无 VerificationPlan 时无法走 recordVerificationExecution 路径,仅记录警告
659
- if (typeof console !== "undefined" && typeof console.warn === "function") {
660
- internalWarn("[sf_verify]", "自动录入跳过: 任务无 VerificationPlan,请后续手动 sf_record_verification_execution");
661
- }
662
- }
663
- else {
664
- const records = verifyExec.map((e, i) => ({
665
- command: e.command,
666
- exit_code: e.exit_code,
667
- stdout_hash: crypto.createHash("sha256").update(e.stdout ?? "").digest("hex"),
668
- stderr_hash: crypto.createHash("sha256").update(e.stderr ?? "").digest("hex"),
669
- started_at: e.started_at,
670
- finished_at: e.finished_at,
671
- evidence_id: `evidence-${args.task_id}-${Date.now()}-${i}-${Math.random().toString(36).slice(2, 8)}`,
672
- }));
673
- // 委托给 verification_contract.recordVerificationExecution 走唯一合法 passed 路径
674
- const vResult = vcMod.recordVerificationExecution(args.task_id, currentPlan.plan_id, records, currentPlan);
675
- const ctxForExec = await taskContext.load(args.task_id);
676
- if (ctxForExec) {
677
- ctxForExec.verification_result = vResult;
678
- await taskContext.save(ctxForExec);
679
- }
680
- }
681
- }
682
- catch (e) {
683
- // 自动录入失败不阻断 sf_verify,用户仍可手动调用 sf_record_verification_execution
684
- if (typeof console !== "undefined" && typeof console.warn === "function") {
685
- internalWarn("[sf_verify]", "自动录入执行结果失败: " + (e instanceof Error ? e.message : String(e)));
686
- }
687
- }
688
- }
689
- // 产物生命周期转换: draft → verified 仅在 ArtifactVerificationResult.passed 时
690
- if (loadedCtx.artifact_output && loadedCtx.artifact_output.status === "draft" && artifactVerificationResult?.passed) {
691
- const evidenceRef = `verification:${loadedCtx.task_id}:checks=${artifactVerificationResult.checks.length}:summary=${artifactVerificationResult.summary.slice(0, 60)}`;
692
- try {
693
- await taskContext.updateArtifactStatus(args.task_id, {
694
- status: "verified",
695
- evidenceRef,
696
- hasVerification: true,
697
- });
698
- }
699
- catch {
700
- // 转换被阻止 — 产物保持 draft,流水线继续
701
- }
702
- }
703
- // 认知锚点上下文回放(按变更文件相关性)
704
- const verifyAnchors = await loadRelevantAnchors({ file_paths: args.changed_files });
705
- const verifyExtras = {};
706
- if (h4Warning)
707
- verifyExtras.h4_advisory = h4Warning;
708
- if (verifyAnchors && verifyAnchors.length > 0)
709
- verifyExtras.cognitive_anchors = verifyAnchors;
710
- if (loadedCtx.artifact_output && loadedCtx.artifact_output.status === "draft" && artifactVerificationResult && !artifactVerificationResult.passed) {
711
- const reason = artifactFileMissing
712
- ? `产物文件不存在 (${loadedCtx.artifact_output.path}),无法计算 hash`
713
- : artifactVerificationResult.summary;
714
- verifyExtras.artifact_warning = `产物验收检查未通过: ${reason}`;
715
- verifyExtras.artifact_verification = artifactVerificationResult;
716
- }
717
- const verifyPayload = Object.keys(verifyExtras).length > 0
718
- ? { ...verifyResult, ...verifyExtras }
719
- : { ...verifyResult };
720
- // 附加验证契约引用到返回结果
721
- verifyPayload.verification_plan = vPlan;
722
- verifyPayload.verification_result = vResult;
723
- // 问题六十:验证结论必须经过 FactClaimVerifier,不得把计划当结果
724
- {
725
- const { createEvidenceGroundingSystem, assessTaskRisk } = await import("../../../engine/contracts/evidence_grounding_contract.js");
726
- const _vRoute = loadedCtx.route_decision?.route ?? loadedCtx.classification?.route_decision?.route;
727
- const _vRisk = assessTaskRisk(loadedCtx.classification?.task_type, _vRoute, loadedCtx.intent);
728
- if (_vRisk !== "low") {
729
- const _veg = createEvidenceGroundingSystem();
730
- // 只有真实执行结果才能作为 validation_result 证据
731
- const _hasRealPassed = loadedCtx.verification_result && loadedCtx.verification_result.status === "passed";
732
- if (_hasRealPassed) {
733
- _veg.registry.register({
734
- source_type: "validation_result",
735
- authority: "authoritative",
736
- freshness: "current",
737
- permission: "allowed",
738
- scope: "verification",
739
- description: `验证状态: ${loadedCtx.verification_result?.status ?? "unknown"}`,
740
- source_ref: `verification:${args.task_id}`,
741
- });
742
- }
743
- // 验证计划注册为 task_context,不冒充 validation_result
744
- _veg.registry.register({
745
- source_type: "task_context",
746
- authority: "supporting",
747
- freshness: "current",
748
- permission: "allowed",
749
- scope: "verification_plan",
750
- description: `验证计划: ${vPlan ? "已生成" : "未生成"}`,
751
- source_ref: `verification-plan:${args.task_id}`,
752
- });
753
- if (args.changed_files.length > 0) {
754
- _veg.registry.register({
755
- source_type: "project_file",
756
- authority: "authoritative",
757
- freshness: "current",
758
- permission: "allowed",
759
- scope: "changed_files",
760
- description: `变更文件: ${args.changed_files.join(", ")}`,
761
- source_ref: `files:${args.changed_files.join(",")}`,
762
- });
763
- }
764
- const _vClaims = [{
765
- id: "claim-verify-1",
766
- category: "validation_result",
767
- claim_text: "验证结果基于真实命令执行",
768
- evidence_ids: _veg.registry.query({ source_type: "validation_result" }).map((e) => e.id),
769
- is_uncertain: false,
770
- risk_level: _vRisk,
771
- }];
772
- const _vVerResult = _veg.verifier.verify(_vClaims, _vRisk);
773
- const _vMatrix = _veg.builder.buildContext(_vClaims, {
774
- target_claims: _vClaims.map((c) => c.claim_text),
775
- source_types: [], keywords: [], max_results: 10,
776
- });
777
- _vMatrix.task_id = args.task_id;
778
- const _vGate = _veg.gate.evaluate(_vMatrix, _vRisk);
779
- // 写回 TaskContext
780
- await taskContext.setEvidenceGroundingResult(args.task_id, {
781
- evidence_matrix: _vMatrix,
782
- evidence_gate_result: _vGate,
783
- unsupported_claims: _vGate.unsupported_claims,
784
- conflict_resolutions: _vMatrix.conflicts,
785
- });
786
- if (_vVerResult.unsupported.length > 0) {
787
- // 高风险:只有 plan 无 result → 写入 payload(不用 verifyExtras)
788
- verifyPayload._evidence_status = "not_verified";
789
- verifyPayload._evidence_reason = "验证结论需真实命令执行结果支撑,验证计划不能当作验证结果。请通过 sf_record_verification_execution 录入真实验证结果。";
790
- if (_vRisk === "high" || _vRisk === "critical") {
791
- verifyPayload._evidence_blocked = true;
792
- }
793
- else {
794
- verifyPayload._evidence_advisory = "验证结论需真实命令执行结果支撑,验证计划不能当作验证结果";
795
- }
796
- }
797
- }
798
- }
799
- // 验证后核心体验评估
800
- try {
801
- const hasVerificationEvidence = (verifyResult.checks?.build?.length ?? 0) > 0 || (verifyResult.checks?.tests?.length ?? 0) > 0;
802
- // 将完整 CEP 结果写入 TaskContext
803
- const cepModule = await import("../../../engine/audit/core_experience_principle.js");
804
- const fullCepEval = cepModule.evaluateCoreExperiencePrinciple({
805
- task_id: args.task_id, workflow_id: "sf_verify",
806
- has_mainline_hooks: true, has_owner_contracts: true, natural_language_entry: true,
807
- requires_internal_contract_knowledge: false, user_path_steps: 3,
808
- has_failures: false, hard_fail_downgraded: false, forced_heavy_process: false,
809
- has_sufficient_evidence: hasVerificationEvidence,
810
- output_too_long_no_summary: false, report_only_no_repair: false,
811
- failed_but_marked_done: false, auto_repair_overreach: false,
812
- repair_reverified: false, outputs_raw_noise: false,
813
- });
814
- const ctxForCep = await taskContext.load(args.task_id);
815
- if (ctxForCep) {
816
- ctxForCep.core_experience_evaluation = fullCepEval;
817
- await taskContext.save(ctxForCep);
818
- }
819
- }
820
- catch (cepErr) {
821
- internalWarn("CEP评估", "评估异常 (task=" + args.task_id + "):", errorMessage(cepErr));
822
- }
823
- return {
824
- result: verifyPayload,
825
- };
826
- });
827
- // ── sf_record_verification_execution: 录入真实验证执行结果(唯一 passed 入口) ──
828
- registerSafeTool("sf_record_verification_execution", "录入真实验证执行结果,VerificationResult.status=passed 的唯一合法入口", RecordVerificationExecutionSchema, async (args) => {
829
- const ctx = await taskContext.load(args.task_id);
830
- if (!ctx) {
831
- return { result: { error: "任务不存在" } };
832
- }
833
- // 必须有 VerificationPlan
834
- const currentPlan = ctx.verification_plan;
835
- if (!currentPlan) {
836
- return { result: { error: "任务无 VerificationPlan,先执行 sf_verify 生成计划" } };
837
- }
838
- // plan_id 必须与 TaskContext 中当前 plan 一致
839
- if (args.plan_id !== currentPlan.plan_id) {
840
- return {
841
- result: {
842
- error: `plan_id 不匹配: 请求 "${args.plan_id}",当前任务计划 "${currentPlan.plan_id}" [${TOOL_DIAGNOSTIC_CODES.verifyPlanMismatch}]`,
843
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.verifyPlanMismatch,
844
- },
845
- };
846
- }
847
- const vcModule = await lazyVerificationContract();
848
- const result = vcModule.recordVerificationExecution(args.task_id, args.plan_id, args.execution_records, currentPlan);
849
- // 持久化到 TaskContext
850
- const ctxForSave = await taskContext.load(args.task_id);
851
- if (ctxForSave) {
852
- ctxForSave.verification_result = result;
853
- await taskContext.save(ctxForSave);
854
- }
855
- return { result };
856
- });
857
- // ── sf_learn: 从执行结果中提取知识,支持重试循环控制 ──
858
- registerSafeTool("sf_learn", "从任务执行结果中提取知识,低置信度暂存,高置信度直接入库", LearnSchema, async (args) => {
859
- const ctx = await taskContext.load(args.task_id);
860
- if (!ctx) {
861
- return {
862
- result: { error: "任务不存在" },
863
- };
864
- }
865
- const VALID_LEARN_STATES = ["verifying", "executing"];
866
- if (!VALID_LEARN_STATES.includes(ctx.status)) {
867
- return {
868
- result: { error: `任务状态 ${ctx.status} 不可学习,需要 verifying 或 executing`, status: ctx.status },
869
- };
870
- }
871
- // 如适用,记录失败
872
- if (args.result === "failure" && args.failure_type) {
873
- await taskContext.setExecution(args.task_id, [], {
874
- attempt: (ctx.execution?.attempt_count ?? 0) + 1,
875
- type: args.failure_type,
876
- message: args.verify_output
877
- ? `build=${args.verify_output.build_passed} tests=${args.verify_output.tests_passed}`
878
- : "unknown failure",
879
- timestamp: new Date().toISOString(),
880
- });
881
- // 创建 FailureReport(脱敏,非 raw error_output)
882
- const frModule = await lazyFailureReport();
883
- const failureClass = args.failure_type;
884
- const errorOutput = args.verify_output
885
- ? `build=${args.verify_output.build_passed} tests=${args.verify_output.tests_passed}`
886
- : "unknown failure";
887
- const retryCount = (ctx.execution?.attempt_count ?? 0) + 1;
888
- const policy = frModule.getRecoveryPolicy(failureClass);
889
- const failureReport = frModule.createFailureReport(args.task_id, failureClass, errorOutput, retryCount, policy?.max_retries ?? 0);
890
- // 存储 FailureReport 到任务上下文
891
- const ctxForFailure = await taskContext.load(args.task_id);
892
- if (ctxForFailure) {
893
- ctxForFailure.failure_report = failureReport;
894
- await taskContext.save(ctxForFailure);
895
- }
896
- // verifier 不可用时创建 DegradationEvent
897
- if (!args.verify_output) {
898
- const degModule = await lazyDegradation();
899
- const degradationEvent = degModule.createDegradationEvent(args.task_id, "verifier", "full", "验证器输出不可用,无法判断 build/test 结果", ["verification_execution"]);
900
- if (degradationEvent) {
901
- const ctxForDeg = await taskContext.load(args.task_id);
902
- if (ctxForDeg) {
903
- ctxForDeg.degradation_event = degradationEvent;
904
- await taskContext.save(ctxForDeg);
905
- }
906
- }
907
- }
908
- }
909
- // 转换到学习阶段
910
- await taskContext.updateStatus(args.task_id, "learning");
911
- const learnResult = await (await lazyEvolver()).evolve({
912
- taskContext: ctx,
913
- result: args.result,
914
- verifyOutput: args.verify_output,
915
- failureType: args.failure_type,
916
- retryCount: ctx.execution?.attempt_count ?? 0,
917
- }, projectPath);
918
- // 确定最终状态: 重试或完成
919
- const attemptCount = (ctx.execution?.attempt_count ?? 0) + (args.result === "failure" ? 1 : 0);
920
- const maxAttempts = ctx.execution?.max_attempts ?? 3;
921
- if (args.result === "failure" && attemptCount < maxAttempts && args.failure_type !== "deterministic") {
922
- // 可重试: 转换到重试阶段
923
- await taskContext.updateStatus(args.task_id, "retrying");
924
- learnResult.retry_hint = `第 ${attemptCount}/${maxAttempts} 次尝试失败,${args.failure_type === "scope_insufficient" ? "需要扩大范围" : "请修复后重试"}`;
925
- }
926
- else {
927
- // 检查主链路集成 — 即使 build/test 全绿,孤岛仍阻断 done
928
- const integrationBlocked = ctx.verification?.main_path_integration
929
- && !ctx.verification.main_path_integration.passed;
930
- // 核心工程执行原则门禁 — required 原则失败不能进入 completed
931
- const principlesBlocked = ctx.verification?.core_principles
932
- && !ctx.verification.core_principles.overall_passed;
933
- const finalStatus = args.result === "failure"
934
- ? "failed"
935
- : (integrationBlocked || principlesBlocked) ? "retrying" : "done";
936
- await taskContext.updateStatus(args.task_id, finalStatus);
937
- if (integrationBlocked && finalStatus === "retrying") {
938
- learnResult.retry_hint = "主链路集成检查失败: 存在孤岛模块,请接入主链路后重试";
939
- }
940
- if (principlesBlocked && finalStatus === "retrying") {
941
- const failedPrinciples = (ctx.verification?.core_principles?.principles ?? [])
942
- .filter((p) => p.status === "failed")
943
- .map((p) => p.principle_id);
944
- learnResult.retry_hint = `核心工程执行原则检查失败: ${failedPrinciples.join(", ")},请修复后重试`;
945
- }
946
- }
947
- return {
948
- result: learnResult,
949
- };
950
- });
951
- }
952
- //# sourceMappingURL=verify_learn.js.map