soloforge 1.1.36 → 1.1.38

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 (847) hide show
  1. package/README.md +6 -6
  2. package/dist/adapters/claude_code/claude_md.js +2 -2
  3. package/dist/adapters/claude_code/claude_md.js.map +1 -1
  4. package/dist/adapters/codex/codex_rules.js +1 -1
  5. package/dist/adapters/codex/codex_rules.js.map +1 -1
  6. package/dist/adapters/shared/workflow_template.js +1 -1
  7. package/dist/adapters/trae/trae_rules.js +1 -1
  8. package/dist/adapters/trae/trae_rules.js.map +1 -1
  9. package/dist/bin/commands/audit.js +1 -1
  10. package/dist/bin/commands/audit.js.map +1 -1
  11. package/dist/bin/commands/check_bash.d.ts.map +1 -1
  12. package/dist/bin/commands/check_bash.js +19 -1
  13. package/dist/bin/commands/check_bash.js.map +1 -1
  14. package/dist/bin/commands/check_write.d.ts.map +1 -1
  15. package/dist/bin/commands/check_write.js +115 -2
  16. package/dist/bin/commands/check_write.js.map +1 -1
  17. package/dist/bin/commands/sync.js +3 -3
  18. package/dist/bin/commands/sync.js.map +1 -1
  19. package/dist/bin/commands/validate.d.ts.map +1 -1
  20. package/dist/bin/commands/validate.js +24 -5
  21. package/dist/bin/commands/validate.js.map +1 -1
  22. package/dist/engine/adapter_prompt_contract.d.ts +1 -1
  23. package/dist/engine/adapter_prompt_contract.d.ts.map +1 -1
  24. package/dist/engine/adapter_prompt_contract.js +1 -1
  25. package/dist/engine/adapter_prompt_contract.js.map +1 -1
  26. package/dist/engine/audit/audit_sampler.d.ts +1 -1
  27. package/dist/engine/audit/confidence_scorer.d.ts +16 -0
  28. package/dist/engine/audit/confidence_scorer.d.ts.map +1 -1
  29. package/dist/engine/audit/confidence_scorer.js +19 -0
  30. package/dist/engine/audit/confidence_scorer.js.map +1 -1
  31. package/dist/engine/audit/core_engineering_principles.d.ts +4 -4
  32. package/dist/engine/audit/core_engineering_principles.d.ts.map +1 -1
  33. package/dist/engine/audit/core_engineering_principles.js +18 -21
  34. package/dist/engine/audit/core_engineering_principles.js.map +1 -1
  35. package/dist/engine/audit/core_experience_principle.js +3 -3
  36. package/dist/engine/audit/core_experience_principle.js.map +1 -1
  37. package/dist/engine/audit/debt_reporter.d.ts +1 -1
  38. package/dist/engine/audit/debugger.d.ts +1 -1
  39. package/dist/engine/audit/delivery_readiness.d.ts +2 -2
  40. package/dist/engine/audit/delivery_readiness.js +2 -2
  41. package/dist/engine/audit/diagnostic_registry.js +4 -4
  42. package/dist/engine/audit/diagnostic_registry.js.map +1 -1
  43. package/dist/engine/audit/evolver.d.ts.map +1 -1
  44. package/dist/engine/audit/evolver.js +29 -2
  45. package/dist/engine/audit/evolver.js.map +1 -1
  46. package/dist/engine/audit/observability.d.ts +1 -1
  47. package/dist/engine/audit/observability.js +1 -1
  48. package/dist/engine/audit/risk_sampler.d.ts +1 -1
  49. package/dist/engine/audit/risk_sampler.js +1 -1
  50. package/dist/engine/audit/semantic_evidence.d.ts +1 -1
  51. package/dist/engine/audit/semantic_evidence.js +1 -1
  52. package/dist/engine/audit/test_generator.js +1 -1
  53. package/dist/engine/audit/test_quality.d.ts +1 -1
  54. package/dist/engine/audit/test_quality.js +1 -1
  55. package/dist/engine/config/regression_matrix.d.ts.map +1 -1
  56. package/dist/engine/config/regression_matrix.js +9 -35
  57. package/dist/engine/config/regression_matrix.js.map +1 -1
  58. package/dist/engine/contracts/architecture_decision_workshop.d.ts +7 -2
  59. package/dist/engine/contracts/architecture_decision_workshop.d.ts.map +1 -1
  60. package/dist/engine/contracts/architecture_decision_workshop.js +6 -2
  61. package/dist/engine/contracts/architecture_decision_workshop.js.map +1 -1
  62. package/dist/engine/contracts/capability_registry.d.ts.map +1 -1
  63. package/dist/engine/contracts/capability_registry.js +4 -5
  64. package/dist/engine/contracts/capability_registry.js.map +1 -1
  65. package/dist/engine/contracts/code_maintainability_observability_contract.js +2 -2
  66. package/dist/engine/contracts/code_maintainability_observability_contract.js.map +1 -1
  67. package/dist/engine/contracts/command_execution_contract.d.ts +1 -1
  68. package/dist/engine/contracts/command_execution_contract.js +3 -3
  69. package/dist/engine/contracts/command_execution_contract.js.map +1 -1
  70. package/dist/engine/contracts/contract_registry/builtin_contracts_core.js +12 -12
  71. package/dist/engine/contracts/contract_registry/builtin_contracts_core.js.map +1 -1
  72. package/dist/engine/contracts/control_plane_contract.d.ts.map +1 -1
  73. package/dist/engine/contracts/control_plane_contract.js +27 -13
  74. package/dist/engine/contracts/control_plane_contract.js.map +1 -1
  75. package/dist/engine/contracts/decision_contract.d.ts +1 -1
  76. package/dist/engine/contracts/decision_contract.js +1 -1
  77. package/dist/engine/contracts/decision_workshop.d.ts +1 -3
  78. package/dist/engine/contracts/decision_workshop.d.ts.map +1 -1
  79. package/dist/engine/contracts/decision_workshop.js.map +1 -1
  80. package/dist/engine/contracts/design_lifecycle_contract.d.ts +2 -2
  81. package/dist/engine/contracts/design_lifecycle_contract.d.ts.map +1 -1
  82. package/dist/engine/contracts/design_lifecycle_contract.js +12 -12
  83. package/dist/engine/contracts/design_lifecycle_contract.js.map +1 -1
  84. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit.js +11 -11
  85. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit.js.map +1 -1
  86. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit_tail.js +3 -3
  87. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit_tail.js.map +1 -1
  88. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_core.d.ts.map +1 -1
  89. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_core.js +68 -28
  90. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_core.js.map +1 -1
  91. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_extension.js +11 -11
  92. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_extension.js.map +1 -1
  93. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_governance.js +10 -10
  94. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_governance.js.map +1 -1
  95. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_infra.js +8 -8
  96. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_infra.js.map +1 -1
  97. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_platform.js +18 -18
  98. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_platform.js.map +1 -1
  99. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_release.js +12 -12
  100. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_release.js.map +1 -1
  101. package/dist/engine/contracts/dual_layer_mechanism_registry/shared.js +2 -2
  102. package/dist/engine/contracts/dual_layer_mechanism_registry/validation.d.ts.map +1 -1
  103. package/dist/engine/contracts/dual_layer_mechanism_registry/validation.js +4 -3
  104. package/dist/engine/contracts/dual_layer_mechanism_registry/validation.js.map +1 -1
  105. package/dist/engine/contracts/enforcement_guard.d.ts +1 -1
  106. package/dist/engine/contracts/enforcement_guard.js +3 -3
  107. package/dist/engine/contracts/enforcement_guard.js.map +1 -1
  108. package/dist/engine/contracts/evolution_regression_gate.d.ts +1 -1
  109. package/dist/engine/contracts/evolution_regression_gate.js +1 -1
  110. package/dist/engine/contracts/instruction_contract.js +1 -1
  111. package/dist/engine/contracts/instruction_contract.js.map +1 -1
  112. package/dist/engine/contracts/lifecycle_knowledge_contract.d.ts +2 -2
  113. package/dist/engine/contracts/lifecycle_knowledge_contract.d.ts.map +1 -1
  114. package/dist/engine/contracts/lifecycle_knowledge_contract.js +10 -10
  115. package/dist/engine/contracts/lifecycle_knowledge_contract.js.map +1 -1
  116. package/dist/engine/contracts/mechanism_contract_registry/contracts-audit.d.ts.map +1 -1
  117. package/dist/engine/contracts/mechanism_contract_registry/contracts-audit.js +18 -17
  118. package/dist/engine/contracts/mechanism_contract_registry/contracts-audit.js.map +1 -1
  119. package/dist/engine/contracts/mechanism_contract_registry/contracts-governance.js +30 -30
  120. package/dist/engine/contracts/mechanism_contract_registry/contracts-governance.js.map +1 -1
  121. package/dist/engine/contracts/mechanism_contract_registry/contracts-pipeline.d.ts +3 -2
  122. package/dist/engine/contracts/mechanism_contract_registry/contracts-pipeline.d.ts.map +1 -1
  123. package/dist/engine/contracts/mechanism_contract_registry/contracts-pipeline.js +75 -52
  124. package/dist/engine/contracts/mechanism_contract_registry/contracts-pipeline.js.map +1 -1
  125. package/dist/engine/contracts/mechanism_contract_registry/contracts-platform.js +20 -20
  126. package/dist/engine/contracts/mechanism_contract_registry/contracts-platform.js.map +1 -1
  127. package/dist/engine/contracts/mechanism_health_check.d.ts +1 -1
  128. package/dist/engine/contracts/mechanism_health_check.js +1 -1
  129. package/dist/engine/contracts/omission_scanner.d.ts +1 -1
  130. package/dist/engine/contracts/omission_scanner.js +1 -1
  131. package/dist/engine/contracts/platform_context.d.ts +1 -1
  132. package/dist/engine/contracts/platform_context.js +1 -1
  133. package/dist/engine/contracts/project_knowledge_contract.d.ts +2 -2
  134. package/dist/engine/contracts/project_knowledge_contract.d.ts.map +1 -1
  135. package/dist/engine/contracts/project_knowledge_contract.js +6 -6
  136. package/dist/engine/contracts/project_knowledge_contract.js.map +1 -1
  137. package/dist/engine/contracts/state_machine_contracts.d.ts +17 -0
  138. package/dist/engine/contracts/state_machine_contracts.d.ts.map +1 -0
  139. package/dist/engine/contracts/state_machine_contracts.js +97 -0
  140. package/dist/engine/contracts/state_machine_contracts.js.map +1 -0
  141. package/dist/engine/contracts/technology_decision.d.ts +18 -0
  142. package/dist/engine/contracts/technology_decision.d.ts.map +1 -1
  143. package/dist/engine/contracts/technology_decision.js +38 -0
  144. package/dist/engine/contracts/technology_decision.js.map +1 -1
  145. package/dist/engine/contracts/tool_invocation_contract_registry.d.ts +2 -3
  146. package/dist/engine/contracts/tool_invocation_contract_registry.d.ts.map +1 -1
  147. package/dist/engine/contracts/tool_invocation_contract_registry.js +163 -186
  148. package/dist/engine/contracts/tool_invocation_contract_registry.js.map +1 -1
  149. package/dist/engine/contracts/user_feedback_contract.d.ts +1 -1
  150. package/dist/engine/contracts/user_feedback_contract.d.ts.map +1 -1
  151. package/dist/engine/contracts/user_feedback_contract.js +6 -9
  152. package/dist/engine/contracts/user_feedback_contract.js.map +1 -1
  153. package/dist/engine/contracts/workflow_template_pack.d.ts +1 -1
  154. package/dist/engine/contracts/workflow_template_pack.js +5 -5
  155. package/dist/engine/contracts/workflow_template_pack.js.map +1 -1
  156. package/dist/engine/core/debug_log.d.ts +1 -1
  157. package/dist/engine/core/debug_log.js +1 -1
  158. package/dist/engine/knowledge/knowledge_asset_audit.d.ts.map +1 -1
  159. package/dist/engine/knowledge/knowledge_asset_audit.js +4 -2
  160. package/dist/engine/knowledge/knowledge_asset_audit.js.map +1 -1
  161. package/dist/engine/knowledge/knowledge_asset_consumer.d.ts +21 -20
  162. package/dist/engine/knowledge/knowledge_asset_consumer.d.ts.map +1 -1
  163. package/dist/engine/knowledge/knowledge_asset_consumer.js +24 -22
  164. package/dist/engine/knowledge/knowledge_asset_consumer.js.map +1 -1
  165. package/dist/engine/knowledge/knowledge_asset_migration.js +1 -1
  166. package/dist/engine/knowledge/knowledge_asset_migration.js.map +1 -1
  167. package/dist/engine/knowledge/knowledge_asset_schema.d.ts +2 -1
  168. package/dist/engine/knowledge/knowledge_asset_schema.d.ts.map +1 -1
  169. package/dist/engine/knowledge/knowledge_asset_schema.js +25 -7
  170. package/dist/engine/knowledge/knowledge_asset_schema.js.map +1 -1
  171. package/dist/engine/knowledge/knowledge_consumption_snapshot.d.ts +3 -3
  172. package/dist/engine/knowledge/knowledge_consumption_snapshot.d.ts.map +1 -1
  173. package/dist/engine/knowledge/knowledge_consumption_snapshot.js +5 -5
  174. package/dist/engine/knowledge/knowledge_consumption_snapshot.js.map +1 -1
  175. package/dist/engine/knowledge/knowledge_injection_boundary.d.ts +36 -5
  176. package/dist/engine/knowledge/knowledge_injection_boundary.d.ts.map +1 -1
  177. package/dist/engine/knowledge/knowledge_injection_boundary.js +95 -40
  178. package/dist/engine/knowledge/knowledge_injection_boundary.js.map +1 -1
  179. package/dist/engine/knowledge/knowledge_scenario_registry.js +1 -1
  180. package/dist/engine/knowledge/knowledge_scenario_registry.js.map +1 -1
  181. package/dist/engine/knowledge/knowledge_writer.js +3 -3
  182. package/dist/engine/knowledge/knowledge_writer.js.map +1 -1
  183. package/dist/engine/knowledge/language_policy.d.ts +2 -2
  184. package/dist/engine/knowledge/language_policy.js +2 -2
  185. package/dist/engine/onboarding.d.ts +1 -1
  186. package/dist/engine/onboarding.js +2 -2
  187. package/dist/engine/onboarding.js.map +1 -1
  188. package/dist/engine/pipeline/artifact_aliases.d.ts +19 -0
  189. package/dist/engine/pipeline/artifact_aliases.d.ts.map +1 -0
  190. package/dist/engine/pipeline/artifact_aliases.js +39 -0
  191. package/dist/engine/pipeline/artifact_aliases.js.map +1 -0
  192. package/dist/engine/pipeline/input_material_extractor.d.ts +1 -1
  193. package/dist/engine/pipeline/input_material_extractor.d.ts.map +1 -1
  194. package/dist/engine/pipeline/intent_expander/helpers.d.ts +15 -29
  195. package/dist/engine/pipeline/intent_expander/helpers.d.ts.map +1 -1
  196. package/dist/engine/pipeline/intent_expander/helpers.js +15 -158
  197. package/dist/engine/pipeline/intent_expander/helpers.js.map +1 -1
  198. package/dist/engine/pipeline/intent_expander/index.d.ts +1 -2
  199. package/dist/engine/pipeline/intent_expander/index.d.ts.map +1 -1
  200. package/dist/engine/pipeline/intent_expander/index.js +1 -3
  201. package/dist/engine/pipeline/intent_expander/index.js.map +1 -1
  202. package/dist/engine/pipeline/intent_expander/knowledge.d.ts +4 -13
  203. package/dist/engine/pipeline/intent_expander/knowledge.d.ts.map +1 -1
  204. package/dist/engine/pipeline/intent_expander/knowledge.js +14 -169
  205. package/dist/engine/pipeline/intent_expander/knowledge.js.map +1 -1
  206. package/dist/engine/pipeline/intent_expander/knowledge_resolution.d.ts +7 -5
  207. package/dist/engine/pipeline/intent_expander/knowledge_resolution.d.ts.map +1 -1
  208. package/dist/engine/pipeline/intent_expander/knowledge_resolution.js +84 -30
  209. package/dist/engine/pipeline/intent_expander/knowledge_resolution.js.map +1 -1
  210. package/dist/engine/pipeline/intent_expander/privacy_gates.d.ts +13 -100
  211. package/dist/engine/pipeline/intent_expander/privacy_gates.d.ts.map +1 -1
  212. package/dist/engine/pipeline/intent_expander/privacy_gates.js +18 -268
  213. package/dist/engine/pipeline/intent_expander/privacy_gates.js.map +1 -1
  214. package/dist/engine/pipeline/intent_expander/scope_acceptance.d.ts +9 -5
  215. package/dist/engine/pipeline/intent_expander/scope_acceptance.d.ts.map +1 -1
  216. package/dist/engine/pipeline/intent_expander/scope_acceptance.js +13 -31
  217. package/dist/engine/pipeline/intent_expander/scope_acceptance.js.map +1 -1
  218. package/dist/engine/pipeline/intent_expander/templates.d.ts +2 -1
  219. package/dist/engine/pipeline/intent_expander/templates.d.ts.map +1 -1
  220. package/dist/engine/pipeline/intent_expander/templates.js +73 -0
  221. package/dist/engine/pipeline/intent_expander/templates.js.map +1 -1
  222. package/dist/engine/pipeline/intent_expander/types.d.ts +0 -2
  223. package/dist/engine/pipeline/intent_expander/types.d.ts.map +1 -1
  224. package/dist/engine/pipeline/intent_expander.d.ts +5 -3
  225. package/dist/engine/pipeline/intent_expander.d.ts.map +1 -1
  226. package/dist/engine/pipeline/intent_expander.js +4 -3
  227. package/dist/engine/pipeline/intent_expander.js.map +1 -1
  228. package/dist/engine/pipeline/job_manager.d.ts +1 -1
  229. package/dist/engine/pipeline/job_manager.js +1 -1
  230. package/dist/engine/pipeline/prompt_template_resolver.d.ts +13 -0
  231. package/dist/engine/pipeline/prompt_template_resolver.d.ts.map +1 -0
  232. package/dist/engine/pipeline/prompt_template_resolver.js +25 -0
  233. package/dist/engine/pipeline/prompt_template_resolver.js.map +1 -0
  234. package/dist/engine/pipeline/rollback_router.d.ts +1 -1
  235. package/dist/engine/pipeline/rollback_router.d.ts.map +1 -1
  236. package/dist/engine/pipeline/scope_resolver.d.ts +9 -2
  237. package/dist/engine/pipeline/scope_resolver.d.ts.map +1 -1
  238. package/dist/engine/pipeline/scope_resolver.js +29 -15
  239. package/dist/engine/pipeline/scope_resolver.js.map +1 -1
  240. package/dist/engine/pipeline/slice_executor.d.ts +5 -1
  241. package/dist/engine/pipeline/slice_executor.d.ts.map +1 -1
  242. package/dist/engine/pipeline/slice_executor.js +4 -1
  243. package/dist/engine/pipeline/slice_executor.js.map +1 -1
  244. package/dist/engine/pipeline/state_machine/audit_logger.d.ts +42 -0
  245. package/dist/engine/pipeline/state_machine/audit_logger.d.ts.map +1 -0
  246. package/dist/engine/pipeline/state_machine/audit_logger.js +65 -0
  247. package/dist/engine/pipeline/state_machine/audit_logger.js.map +1 -0
  248. package/dist/engine/pipeline/state_machine/capability_safety_valve.d.ts +51 -0
  249. package/dist/engine/pipeline/state_machine/capability_safety_valve.d.ts.map +1 -0
  250. package/dist/engine/pipeline/state_machine/capability_safety_valve.js +131 -0
  251. package/dist/engine/pipeline/state_machine/capability_safety_valve.js.map +1 -0
  252. package/dist/engine/pipeline/state_machine/certainty_gate.d.ts +92 -0
  253. package/dist/engine/pipeline/state_machine/certainty_gate.d.ts.map +1 -0
  254. package/dist/engine/pipeline/state_machine/certainty_gate.js +317 -0
  255. package/dist/engine/pipeline/state_machine/certainty_gate.js.map +1 -0
  256. package/dist/engine/pipeline/state_machine/command_state_verifier.d.ts +50 -0
  257. package/dist/engine/pipeline/state_machine/command_state_verifier.d.ts.map +1 -0
  258. package/dist/engine/pipeline/state_machine/command_state_verifier.js +160 -0
  259. package/dist/engine/pipeline/state_machine/command_state_verifier.js.map +1 -0
  260. package/dist/engine/pipeline/state_machine/hook_classifier.d.ts +58 -0
  261. package/dist/engine/pipeline/state_machine/hook_classifier.d.ts.map +1 -0
  262. package/dist/engine/pipeline/state_machine/hook_classifier.js +123 -0
  263. package/dist/engine/pipeline/state_machine/hook_classifier.js.map +1 -0
  264. package/dist/engine/pipeline/state_machine/human_uncertainty_detector.d.ts +33 -0
  265. package/dist/engine/pipeline/state_machine/human_uncertainty_detector.d.ts.map +1 -0
  266. package/dist/engine/pipeline/state_machine/human_uncertainty_detector.js +72 -0
  267. package/dist/engine/pipeline/state_machine/human_uncertainty_detector.js.map +1 -0
  268. package/dist/engine/pipeline/state_machine/knowledge_stage_query.d.ts +21 -0
  269. package/dist/engine/pipeline/state_machine/knowledge_stage_query.d.ts.map +1 -0
  270. package/dist/engine/pipeline/state_machine/knowledge_stage_query.js +33 -0
  271. package/dist/engine/pipeline/state_machine/knowledge_stage_query.js.map +1 -0
  272. package/dist/engine/pipeline/state_machine/pipeline_state_machine.d.ts +154 -0
  273. package/dist/engine/pipeline/state_machine/pipeline_state_machine.d.ts.map +1 -0
  274. package/dist/engine/pipeline/state_machine/pipeline_state_machine.js +1089 -0
  275. package/dist/engine/pipeline/state_machine/pipeline_state_machine.js.map +1 -0
  276. package/dist/engine/pipeline/state_machine/risk_pattern_scanner.d.ts +34 -0
  277. package/dist/engine/pipeline/state_machine/risk_pattern_scanner.d.ts.map +1 -0
  278. package/dist/engine/pipeline/state_machine/risk_pattern_scanner.js +152 -0
  279. package/dist/engine/pipeline/state_machine/risk_pattern_scanner.js.map +1 -0
  280. package/dist/engine/pipeline/state_machine/route_usage_stats.d.ts +28 -0
  281. package/dist/engine/pipeline/state_machine/route_usage_stats.d.ts.map +1 -0
  282. package/dist/engine/pipeline/state_machine/route_usage_stats.js +76 -0
  283. package/dist/engine/pipeline/state_machine/route_usage_stats.js.map +1 -0
  284. package/dist/engine/pipeline/state_machine/sf_command_parser.d.ts +22 -0
  285. package/dist/engine/pipeline/state_machine/sf_command_parser.d.ts.map +1 -0
  286. package/dist/engine/pipeline/state_machine/sf_command_parser.js +170 -0
  287. package/dist/engine/pipeline/state_machine/sf_command_parser.js.map +1 -0
  288. package/dist/engine/pipeline/state_machine/stage_command_registry.d.ts +38 -0
  289. package/dist/engine/pipeline/state_machine/stage_command_registry.d.ts.map +1 -0
  290. package/dist/engine/pipeline/state_machine/stage_command_registry.js +218 -0
  291. package/dist/engine/pipeline/state_machine/stage_command_registry.js.map +1 -0
  292. package/dist/engine/pipeline/state_machine/stage_executor.d.ts +37 -0
  293. package/dist/engine/pipeline/state_machine/stage_executor.d.ts.map +1 -0
  294. package/dist/engine/pipeline/state_machine/stage_executor.js +67 -0
  295. package/dist/engine/pipeline/state_machine/stage_executor.js.map +1 -0
  296. package/dist/engine/pipeline/state_machine/state_migrator.d.ts +21 -0
  297. package/dist/engine/pipeline/state_machine/state_migrator.d.ts.map +1 -0
  298. package/dist/engine/pipeline/state_machine/state_migrator.js +130 -0
  299. package/dist/engine/pipeline/state_machine/state_migrator.js.map +1 -0
  300. package/dist/engine/pipeline/state_machine/state_self_diagnostic.d.ts +48 -0
  301. package/dist/engine/pipeline/state_machine/state_self_diagnostic.d.ts.map +1 -0
  302. package/dist/engine/pipeline/state_machine/state_self_diagnostic.js +566 -0
  303. package/dist/engine/pipeline/state_machine/state_self_diagnostic.js.map +1 -0
  304. package/dist/engine/pipeline/state_machine/static_route_table.d.ts +36 -0
  305. package/dist/engine/pipeline/state_machine/static_route_table.d.ts.map +1 -0
  306. package/dist/engine/pipeline/state_machine/static_route_table.js +112 -0
  307. package/dist/engine/pipeline/state_machine/static_route_table.js.map +1 -0
  308. package/dist/engine/pipeline/state_machine/strong_confirmation.d.ts +45 -0
  309. package/dist/engine/pipeline/state_machine/strong_confirmation.d.ts.map +1 -0
  310. package/dist/engine/pipeline/state_machine/strong_confirmation.js +57 -0
  311. package/dist/engine/pipeline/state_machine/strong_confirmation.js.map +1 -0
  312. package/dist/engine/pipeline/state_machine/uncertainty_bridge.d.ts +55 -0
  313. package/dist/engine/pipeline/state_machine/uncertainty_bridge.d.ts.map +1 -0
  314. package/dist/engine/pipeline/state_machine/uncertainty_bridge.js +48 -0
  315. package/dist/engine/pipeline/state_machine/uncertainty_bridge.js.map +1 -0
  316. package/dist/engine/pipeline/task_context/manager.d.ts +40 -1
  317. package/dist/engine/pipeline/task_context/manager.d.ts.map +1 -1
  318. package/dist/engine/pipeline/task_context/manager.js +348 -114
  319. package/dist/engine/pipeline/task_context/manager.js.map +1 -1
  320. package/dist/engine/pipeline/task_context/manager_setters.d.ts +23 -1
  321. package/dist/engine/pipeline/task_context/manager_setters.d.ts.map +1 -1
  322. package/dist/engine/pipeline/task_context/manager_setters.js +237 -119
  323. package/dist/engine/pipeline/task_context/manager_setters.js.map +1 -1
  324. package/dist/engine/pipeline/task_context/status_transitions.d.ts +7 -2
  325. package/dist/engine/pipeline/task_context/status_transitions.d.ts.map +1 -1
  326. package/dist/engine/pipeline/task_context/status_transitions.js +9 -14
  327. package/dist/engine/pipeline/task_context/status_transitions.js.map +1 -1
  328. package/dist/engine/pipeline/task_planner.js +14 -8
  329. package/dist/engine/pipeline/task_planner.js.map +1 -1
  330. package/dist/engine/pipeline/task_stage_detector.d.ts +2 -0
  331. package/dist/engine/pipeline/task_stage_detector.d.ts.map +1 -1
  332. package/dist/engine/pipeline/task_stage_detector.js +34 -3
  333. package/dist/engine/pipeline/task_stage_detector.js.map +1 -1
  334. package/dist/engine/pipeline/workspace_lease.d.ts +1 -1
  335. package/dist/engine/pipeline/workspace_lease.js +1 -1
  336. package/dist/engine/pipeline/workspace_resumer.js +2 -2
  337. package/dist/engine/pipeline/workspace_resumer.js.map +1 -1
  338. package/dist/engine/release/foundation_scenario_registry.js +45 -45
  339. package/dist/engine/release/foundation_scenario_registry.js.map +1 -1
  340. package/dist/engine/release/foundation_scenario_runners.d.ts +3 -3
  341. package/dist/engine/release/foundation_scenario_runners.d.ts.map +1 -1
  342. package/dist/engine/release/foundation_scenario_runners.js +27 -485
  343. package/dist/engine/release/foundation_scenario_runners.js.map +1 -1
  344. package/dist/engine/release/gate_checks/checkControlPlaneTrust.d.ts.map +1 -1
  345. package/dist/engine/release/gate_checks/checkControlPlaneTrust.js +23 -21
  346. package/dist/engine/release/gate_checks/checkControlPlaneTrust.js.map +1 -1
  347. package/dist/engine/release/gate_checks/checkCriticalProblemConsumption.d.ts.map +1 -1
  348. package/dist/engine/release/gate_checks/checkCriticalProblemConsumption.js +8 -9
  349. package/dist/engine/release/gate_checks/checkCriticalProblemConsumption.js.map +1 -1
  350. package/dist/engine/release/gate_checks/checkMainlineConsumption.js +3 -3
  351. package/dist/engine/release/gate_checks/checkMainlineConsumption.js.map +1 -1
  352. package/dist/engine/release/gate_checks/checkTemplateKnowledgeHygiene.d.ts.map +1 -1
  353. package/dist/engine/release/gate_checks/checkTemplateKnowledgeHygiene.js +8 -56
  354. package/dist/engine/release/gate_checks/checkTemplateKnowledgeHygiene.js.map +1 -1
  355. package/dist/engine/release/release_gate_scenario_registry.js +2 -2
  356. package/dist/engine/release/release_gate_scenario_registry.js.map +1 -1
  357. package/dist/engine/release/release_issue_scenario_registry/scenarios_architecture_workshop.js +39 -39
  358. package/dist/engine/release/release_issue_scenario_registry/scenarios_architecture_workshop.js.map +1 -1
  359. package/dist/engine/release/release_issue_scenario_registry/scenarios_code_observability.js +19 -19
  360. package/dist/engine/release/release_issue_scenario_registry/scenarios_code_observability.js.map +1 -1
  361. package/dist/engine/release/release_issue_scenario_registry/scenarios_decision_workshop.js +60 -60
  362. package/dist/engine/release/release_issue_scenario_registry/scenarios_decision_workshop.js.map +1 -1
  363. package/dist/engine/release/release_issue_scenario_registry/scenarios_design_pack.d.ts.map +1 -1
  364. package/dist/engine/release/release_issue_scenario_registry/scenarios_design_pack.js +39 -43
  365. package/dist/engine/release/release_issue_scenario_registry/scenarios_design_pack.js.map +1 -1
  366. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_contract.d.ts.map +1 -1
  367. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_contract.js +104 -27
  368. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_contract.js.map +1 -1
  369. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_visibility.js +15 -15
  370. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_visibility.js.map +1 -1
  371. package/dist/engine/release/types.d.ts +2 -2
  372. package/dist/engine/release/types.d.ts.map +1 -1
  373. package/dist/engine/release/verifier.js +7 -7
  374. package/dist/engine/release/verifier.js.map +1 -1
  375. package/dist/engine/state_fact_classifier.d.ts +3 -3
  376. package/dist/engine/state_fact_classifier.js +4 -4
  377. package/dist/engine/state_fact_classifier.js.map +1 -1
  378. package/dist/engine/templates/asset_manifest.d.ts.map +1 -1
  379. package/dist/engine/templates/asset_manifest.js +18 -16
  380. package/dist/engine/templates/asset_manifest.js.map +1 -1
  381. package/dist/engine/templates/consumable_asset_registry/builtin_assets_core.js +11 -11
  382. package/dist/engine/templates/consumable_asset_registry/builtin_assets_core.js.map +1 -1
  383. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_core.d.ts +1 -1
  384. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_core.d.ts.map +1 -1
  385. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_core.js +34 -10
  386. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_core.js.map +1 -1
  387. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext.js +10 -10
  388. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext.js.map +1 -1
  389. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext2.js +18 -18
  390. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext2.js.map +1 -1
  391. package/dist/engine/templates/consumable_asset_registry/types.js +4 -4
  392. package/dist/engine/templates/consumable_asset_registry/types.js.map +1 -1
  393. package/dist/engine/templates/consumption_trace_store.d.ts +3 -3
  394. package/dist/engine/templates/consumption_trace_store.d.ts.map +1 -1
  395. package/dist/engine/templates/consumption_trace_store.js +4 -4
  396. package/dist/engine/templates/consumption_trace_store.js.map +1 -1
  397. package/dist/engine/templates/explicit_asset_registry/adapters.js +4 -4
  398. package/dist/engine/templates/explicit_asset_registry/adapters.js.map +1 -1
  399. package/dist/engine/templates/explicit_asset_registry/artifacts_existing_system.js +10 -10
  400. package/dist/engine/templates/explicit_asset_registry/artifacts_existing_system.js.map +1 -1
  401. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part1.js +25 -25
  402. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part1.js.map +1 -1
  403. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part2.js +5 -5
  404. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part2.js.map +1 -1
  405. package/dist/engine/templates/explicit_asset_registry/checklists.js +7 -7
  406. package/dist/engine/templates/explicit_asset_registry/contributing.js +1 -1
  407. package/dist/engine/templates/explicit_asset_registry/domain.js +9 -9
  408. package/dist/engine/templates/explicit_asset_registry/gates.js +20 -20
  409. package/dist/engine/templates/explicit_asset_registry/gates.js.map +1 -1
  410. package/dist/engine/templates/explicit_asset_registry/internal_patterns.js +27 -27
  411. package/dist/engine/templates/explicit_asset_registry/internal_rules_part1.d.ts.map +1 -1
  412. package/dist/engine/templates/explicit_asset_registry/internal_rules_part1.js +42 -26
  413. package/dist/engine/templates/explicit_asset_registry/internal_rules_part1.js.map +1 -1
  414. package/dist/engine/templates/explicit_asset_registry/internal_rules_part2.js +20 -20
  415. package/dist/engine/templates/explicit_asset_registry/internal_rules_part2.js.map +1 -1
  416. package/dist/engine/templates/explicit_asset_registry/patterns_part1.js +25 -25
  417. package/dist/engine/templates/explicit_asset_registry/patterns_part2.js +25 -25
  418. package/dist/engine/templates/explicit_asset_registry/patterns_part3.js +2 -2
  419. package/dist/engine/templates/explicit_asset_registry/patterns_part3.js.map +1 -1
  420. package/dist/engine/templates/explicit_asset_registry/procedures_part1.d.ts.map +1 -1
  421. package/dist/engine/templates/explicit_asset_registry/procedures_part1.js +42 -26
  422. package/dist/engine/templates/explicit_asset_registry/procedures_part1.js.map +1 -1
  423. package/dist/engine/templates/explicit_asset_registry/procedures_part2.d.ts.map +1 -1
  424. package/dist/engine/templates/explicit_asset_registry/procedures_part2.js +29 -12
  425. package/dist/engine/templates/explicit_asset_registry/procedures_part2.js.map +1 -1
  426. package/dist/engine/templates/explicit_asset_registry/profiles.js +3 -3
  427. package/dist/engine/templates/explicit_asset_registry/profiles.js.map +1 -1
  428. package/dist/engine/templates/explicit_asset_registry/rules_pipeline.js +9 -9
  429. package/dist/engine/templates/explicit_asset_registry/rules_pipeline.js.map +1 -1
  430. package/dist/engine/templates/explicit_asset_registry/rules_shared.js +16 -16
  431. package/dist/engine/templates/explicit_asset_registry/rules_shared.js.map +1 -1
  432. package/dist/engine/templates/explicit_asset_registry/scaffolds.js +22 -22
  433. package/dist/engine/templates/explicit_asset_registry/scaffolds.js.map +1 -1
  434. package/dist/engine/templates/explicit_asset_registry/types.d.ts +1 -1
  435. package/dist/engine/templates/observed_consumption.d.ts +2 -2
  436. package/dist/engine/templates/observed_consumption.d.ts.map +1 -1
  437. package/dist/engine/templates/observed_consumption.js +5 -22
  438. package/dist/engine/templates/observed_consumption.js.map +1 -1
  439. package/dist/engine/templates/scaffolder.js +8 -8
  440. package/dist/engine/templates/scaffolder.js.map +1 -1
  441. package/dist/engine/templates/standard_asset_contract.d.ts +5 -5
  442. package/dist/engine/templates/standard_asset_contract.d.ts.map +1 -1
  443. package/dist/engine/templates/standard_asset_contract.js +18 -18
  444. package/dist/engine/templates/standard_asset_contract.js.map +1 -1
  445. package/dist/engine/templates/standard_asset_coverage.js +12 -12
  446. package/dist/engine/templates/standard_asset_coverage.js.map +1 -1
  447. package/dist/engine/templates/template_asset_contract_registry.d.ts +2 -2
  448. package/dist/engine/templates/template_asset_contract_registry.js +23 -23
  449. package/dist/engine/templates/template_asset_contract_registry.js.map +1 -1
  450. package/dist/engine/templates/template_asset_visibility.d.ts +1 -1
  451. package/dist/engine/templates/template_asset_visibility.js +4 -4
  452. package/dist/engine/templates/template_asset_visibility.js.map +1 -1
  453. package/dist/engine/templates/template_init_sync.js +11 -11
  454. package/dist/engine/templates/template_init_sync.js.map +1 -1
  455. package/dist/engine/templates/template_manifest_io.js +6 -6
  456. package/dist/engine/templates/template_manifest_io.js.map +1 -1
  457. package/dist/engine/templates/template_mechanism_auditor.d.ts.map +1 -1
  458. package/dist/engine/templates/template_mechanism_auditor.js +6 -5
  459. package/dist/engine/templates/template_mechanism_auditor.js.map +1 -1
  460. package/dist/engine/templates/workflow_rule_generator.d.ts.map +1 -1
  461. package/dist/engine/templates/workflow_rule_generator.js +8 -10
  462. package/dist/engine/templates/workflow_rule_generator.js.map +1 -1
  463. package/dist/engine/workflow/index.d.ts +2 -2
  464. package/dist/engine/workflow/index.d.ts.map +1 -1
  465. package/dist/engine/workflow/index.js +1 -1
  466. package/dist/engine/workflow/index.js.map +1 -1
  467. package/dist/engine/workflow/next_action_planner.js +11 -9
  468. package/dist/engine/workflow/next_action_planner.js.map +1 -1
  469. package/dist/engine/workflow/workflow_contract_registry.d.ts +49 -31
  470. package/dist/engine/workflow/workflow_contract_registry.d.ts.map +1 -1
  471. package/dist/engine/workflow/workflow_contract_registry.js +81 -642
  472. package/dist/engine/workflow/workflow_contract_registry.js.map +1 -1
  473. package/dist/knowledge/index_manager.d.ts +6 -1
  474. package/dist/knowledge/index_manager.d.ts.map +1 -1
  475. package/dist/knowledge/index_manager.js +156 -74
  476. package/dist/knowledge/index_manager.js.map +1 -1
  477. package/dist/knowledge/writer.d.ts +10 -0
  478. package/dist/knowledge/writer.d.ts.map +1 -1
  479. package/dist/knowledge/writer.js +40 -0
  480. package/dist/knowledge/writer.js.map +1 -1
  481. package/dist/server/tools/cep_assessment.d.ts +1 -1
  482. package/dist/server/tools/cep_assessment.d.ts.map +1 -1
  483. package/dist/server/tools/cep_assessment.js +15 -6
  484. package/dist/server/tools/cep_assessment.js.map +1 -1
  485. package/dist/server/tools/gate_checks.d.ts +9 -0
  486. package/dist/server/tools/gate_checks.d.ts.map +1 -1
  487. package/dist/server/tools/gate_checks.js +55 -1
  488. package/dist/server/tools/gate_checks.js.map +1 -1
  489. package/dist/server/tools/index.d.ts.map +1 -1
  490. package/dist/server/tools/index.js +8 -29
  491. package/dist/server/tools/index.js.map +1 -1
  492. package/dist/server/tools/lazy_loaders.d.ts +0 -3
  493. package/dist/server/tools/lazy_loaders.d.ts.map +1 -1
  494. package/dist/server/tools/lazy_loaders.js +0 -3
  495. package/dist/server/tools/lazy_loaders.js.map +1 -1
  496. package/dist/server/tools/middleware.d.ts.map +1 -1
  497. package/dist/server/tools/middleware.js +419 -394
  498. package/dist/server/tools/middleware.js.map +1 -1
  499. package/dist/server/tools/schemas.d.ts +40 -7
  500. package/dist/server/tools/schemas.d.ts.map +1 -1
  501. package/dist/server/tools/schemas.js +27 -11
  502. package/dist/server/tools/schemas.js.map +1 -1
  503. package/dist/server/tools/tool_groups/admin.d.ts.map +1 -1
  504. package/dist/server/tools/tool_groups/admin.js +4 -107
  505. package/dist/server/tools/tool_groups/admin.js.map +1 -1
  506. package/dist/server/tools/tool_groups/auxiliary.d.ts.map +1 -1
  507. package/dist/server/tools/tool_groups/auxiliary.js +4 -21
  508. package/dist/server/tools/tool_groups/auxiliary.js.map +1 -1
  509. package/dist/server/tools/tool_groups/scaffold_accept_deliver.d.ts +0 -1
  510. package/dist/server/tools/tool_groups/scaffold_accept_deliver.d.ts.map +1 -1
  511. package/dist/server/tools/tool_groups/scaffold_accept_deliver.js +5 -427
  512. package/dist/server/tools/tool_groups/scaffold_accept_deliver.js.map +1 -1
  513. package/dist/server/tools/tool_groups/state_machine.d.ts +13 -0
  514. package/dist/server/tools/tool_groups/state_machine.d.ts.map +1 -0
  515. package/dist/server/tools/tool_groups/state_machine.js +422 -0
  516. package/dist/server/tools/tool_groups/state_machine.js.map +1 -0
  517. package/dist/server/tools/tool_names.d.ts +19 -19
  518. package/dist/server/tools/tool_names.d.ts.map +1 -1
  519. package/dist/server/tools/tool_names.js +23 -24
  520. package/dist/server/tools/tool_names.js.map +1 -1
  521. package/dist/types/dual_layer.d.ts +3 -3
  522. package/dist/types/index.d.ts +1 -0
  523. package/dist/types/index.d.ts.map +1 -1
  524. package/dist/types/index.js +1 -0
  525. package/dist/types/index.js.map +1 -1
  526. package/dist/types/pipeline.d.ts +17 -7
  527. package/dist/types/pipeline.d.ts.map +1 -1
  528. package/dist/types/pipeline.js +4 -0
  529. package/dist/types/pipeline.js.map +1 -1
  530. package/dist/types/state_machine.d.ts +344 -0
  531. package/dist/types/state_machine.d.ts.map +1 -0
  532. package/dist/types/state_machine.js +47 -0
  533. package/dist/types/state_machine.js.map +1 -0
  534. package/dist/types/task.d.ts +35 -8
  535. package/dist/types/task.d.ts.map +1 -1
  536. package/package.json +3 -3
  537. 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 +0 -2
  538. 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 +0 -2
  539. 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 +0 -2
  540. 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 +0 -2
  541. 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 +0 -2
  542. 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 +0 -2
  543. 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 +0 -2
  544. 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 +0 -2
  545. 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 +0 -2
  546. package/templates/artifacts/shared/ADR/346/250/241/347/211/210.md +0 -2
  547. 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 +0 -2
  548. package/templates/artifacts/shared/Bug/345/210/206/346/236/220/346/250/241/347/211/210.md +0 -2
  549. package/templates/artifacts/shared/OOD/350/256/276/350/256/241/346/221/230/350/246/201/346/250/241/347/211/210.md +0 -3
  550. package/templates/artifacts/shared/POC/347/273/223/350/256/272/346/250/241/347/211/210.md +0 -2
  551. 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 +0 -2
  552. 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 +0 -1
  553. package/templates/artifacts/shared//345/210/207/347/211/207/350/256/241/345/210/222/346/250/241/347/211/210.md +0 -3
  554. 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 +0 -2
  555. package/templates/artifacts/shared//345/216/237/345/236/213/350/257/264/346/230/216/346/250/241/347/211/210.md +0 -2
  556. package/templates/artifacts/shared//345/220/216/347/253/257API/351/252/214/346/224/266/346/270/205/345/215/225.md +0 -2
  557. 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 +0 -1
  558. package/templates/artifacts/shared//345/256/211/345/205/250/345/256/241/350/256/241/346/250/241/347/211/210.md +0 -2
  559. package/templates/artifacts/shared//345/256/241/346/237/245/346/221/230/350/246/201.md +0 -2
  560. package/templates/artifacts/shared//346/200/247/350/203/275/345/210/206/346/236/220/346/250/241/347/211/210.md +0 -2
  561. 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 +0 -2
  562. 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 +0 -2
  563. package/templates/artifacts/shared//346/225/205/351/232/234/345/244/215/347/233/230/346/250/241/347/211/210.md +0 -2
  564. 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 +0 -2
  565. 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 +0 -2
  566. 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 +0 -2
  567. package/templates/artifacts/shared//346/236/266/346/236/204/350/256/276/350/256/241/346/250/241/347/211/210.md +0 -2
  568. package/templates/artifacts/shared//346/265/213/350/257/225/350/256/241/345/210/222/346/250/241/347/211/210.md +0 -2
  569. 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 +0 -1
  570. package/templates/artifacts/shared//350/257/246/347/273/206/350/256/276/350/256/241/346/250/241/347/211/210.md +0 -2
  571. package/templates/artifacts/shared//350/277/201/347/247/273/350/257/204/344/274/260/346/250/241/347/211/210.md +0 -2
  572. 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 +0 -2
  573. package/templates/artifacts/shared//351/207/215/346/236/204/346/226/271/346/241/210/346/250/241/347/211/210.md +0 -2
  574. package/templates/artifacts/shared//351/234/200/346/261/202/345/210/206/346/236/220/346/250/241/347/211/210.md +0 -2
  575. 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 +0 -1
  576. 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 +0 -1
  577. package/templates/checklists//344/274/232/350/257/235/346/201/242/345/244/215.md +0 -1
  578. 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 +0 -1
  579. 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 +0 -1
  580. 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 +0 -1
  581. package/templates/checklists//351/232/220/347/247/201/345/256/241/346/237/245/346/270/205/345/215/225.md +0 -1
  582. package/templates/checklists//351/252/214/350/257/201/351/252/214/346/224/266/346/270/205/345/215/225.md +0 -1
  583. package/templates/domain//345/244/232/347/247/237/346/210/267.md +0 -2
  584. package/templates/domain//345/256/241/350/256/241/346/227/245/345/277/227.md +0 -2
  585. package/templates/domain//345/257/274/345/205/245/345/257/274/345/207/272/350/247/204/345/210/231.md +0 -2
  586. package/templates/domain//345/267/245/344/275/234/346/265/201/345/274/225/346/223/216.md +0 -2
  587. package/templates/domain//346/212/245/350/241/250/347/273/237/350/256/241.md +0 -2
  588. package/templates/domain//346/224/257/344/273/230/350/247/204/345/210/231.md +0 -2
  589. package/templates/domain//346/225/260/346/215/256/346/235/203/351/231/220.md +0 -2
  590. package/templates/domain//351/200/232/347/224/250/346/234/272/346/242/260/346/235/241/346/254/276.md +0 -2
  591. package/templates/domain//351/200/232/347/237/245/350/247/204/345/210/231.md +0 -2
  592. package/templates/internal/patterns/Diff/345/275/222/345/261/236/350/277/275/350/270/252.md +0 -2
  593. 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 +0 -2
  594. package/templates/internal/patterns/Java/350/264/250/351/207/217/351/227/250/347/246/201.md +0 -2
  595. package/templates/internal/patterns/LLM/351/242/204/347/256/227/347/275/221/345/205/263.md +0 -2
  596. package/templates/internal/patterns//344/272/247/347/211/251Schema/346/263/250/345/206/214/344/270/255/345/277/203.md +0 -2
  597. 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 +0 -2
  598. package/templates/internal/patterns//344/273/273/345/212/241/347/256/241/347/220/206/345/231/250.md +0 -2
  599. 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 +0 -2
  600. package/templates/internal/patterns//344/275/234/347/224/250/345/237/237/347/247/237/347/272/246.md +0 -2
  601. package/templates/internal/patterns//345/206/262/347/252/201/351/227/250/347/246/201.md +0 -2
  602. package/templates/internal/patterns//345/206/263/347/255/226/347/275/221/345/205/263.md +0 -2
  603. 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 +0 -2
  604. package/templates/internal/patterns//345/217/230/345/274/202/345/256/241/350/256/241.md +0 -2
  605. package/templates/internal/patterns//345/233/236/345/275/222/347/237/251/351/230/265.md +0 -2
  606. package/templates/internal/patterns//345/267/245/344/275/234/345/214/272/344/272/222/346/226/245/351/224/201.md +0 -2
  607. package/templates/internal/patterns//345/267/245/344/275/234/345/214/272/345/224/244/351/206/222.md +0 -2
  608. package/templates/internal/patterns//345/271/266/345/217/221/351/224/201.md +0 -2
  609. package/templates/internal/patterns//345/274/200/345/217/221/350/200/205/345/256/252/346/263/225.md +1 -3
  610. package/templates/internal/patterns//346/225/217/346/204/237/344/277/241/346/201/257/346/211/253/346/217/217.md +0 -2
  611. package/templates/internal/patterns//346/250/241/347/211/210Frontmatter/350/247/243/346/236/220.md +0 -2
  612. 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 +0 -2
  613. package/templates/internal/patterns//346/265/201/345/274/217/345/277/203/350/267/263.md +0 -2
  614. package/templates/internal/patterns//347/237/245/350/257/206/344/270/273/346/235/203.md +0 -2
  615. package/templates/internal/patterns//350/257/255/344/271/211/350/257/201/346/215/256.md +0 -2
  616. package/templates/internal/patterns//350/277/220/350/241/214/345/256/211/345/205/250/345/214/205.md +0 -2
  617. package/templates/internal/patterns//351/233/266/351/205/215/347/275/256/345/210/235/345/247/213/345/214/226.md +0 -2
  618. package/templates/internal/patterns//351/252/214/350/257/201/345/221/275/344/273/244/347/224/237/346/210/220.md +0 -2
  619. package/templates/internal/rules/OOD/344/270/216SOLID/350/256/276/350/256/241/350/247/204/345/210/231.md +0 -1
  620. package/templates/internal/rules//344/272/247/347/211/251/345/245/221/347/272/246/350/247/204/345/210/231.md +1 -2
  621. 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 +0 -1
  622. 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 -1
  623. 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 -1
  624. package/templates/internal/rules//345/221/275/344/273/244/346/211/247/350/241/214/350/247/204/345/210/231.md +0 -1
  625. package/templates/internal/rules//345/221/275/344/273/244/350/267/257/347/224/261/350/247/204/345/210/231.md +36 -0
  626. 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 +0 -1
  627. 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 +6 -7
  628. 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 -1
  629. package/templates/internal/rules//345/267/245/345/205/267/350/260/203/347/224/250/350/247/204/345/210/231.md +0 -1
  630. package/templates/internal/rules//346/204/217/345/233/276/350/267/257/347/224/261/350/247/204/345/210/231.md +4 -3
  631. 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 +3 -4
  632. 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 -1
  633. 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 -1
  634. 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 +0 -1
  635. 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 -1
  636. package/templates/internal/rules//346/227/245/345/277/227/346/262/273/347/220/206/350/247/204/345/210/231.md +0 -1
  637. 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 -1
  638. 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 +0 -2
  639. 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 -6
  640. package/templates/internal/rules//346/240/270/345/277/203/344/275/223/351/252/214/345/216/237/345/210/231.md +0 -1
  641. 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 +0 -1
  642. package/templates/internal/rules//346/250/241/347/211/210Frontmatter/350/247/204/350/214/203.md +2 -3
  643. 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 -4
  644. 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 +0 -1
  645. 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 -1
  646. 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 +3 -4
  647. package/templates/internal/rules//347/237/245/350/257/206/346/262/273/347/220/206/350/247/204/345/210/231.md +0 -1
  648. 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 +0 -1
  649. 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 +1 -2
  650. 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 -1
  651. package/templates/internal/rules//347/273/206/350/212/202/347/272/252/345/276/213/350/247/204/345/210/231.md +0 -1
  652. 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 -1
  653. 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 +0 -5
  654. 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 +0 -3
  655. 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 -1
  656. 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 -1
  657. 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 +0 -1
  658. 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 -4
  659. 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 +0 -1
  660. 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 +0 -2
  661. 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 +0 -1
  662. 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 +0 -1
  663. 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 -3
  664. package/templates/internal/rules//351/252/214/350/257/201/345/245/221/347/272/246/350/247/204/345/210/231.md +0 -1
  665. package/templates/patterns/API/350/256/276/350/256/241/350/247/204/350/214/203.md +0 -2
  666. package/templates/patterns/Docker/351/203/250/347/275/262/350/247/204/350/214/203.md +0 -2
  667. package/templates/patterns/Git/346/223/215/344/275/234/350/247/204/350/214/203.md +0 -2
  668. package/templates/patterns/N/345/212/2401/346/237/245/350/257/242/350/247/204/350/214/203.md +0 -2
  669. package/templates/patterns/React/345/210/227/350/241/250/350/241/250/346/240/274/350/247/204/350/214/203.md +0 -2
  670. package/templates/patterns/React/346/216/245/345/217/243/351/233/206/346/210/220/350/247/204/350/214/203.md +0 -2
  671. package/templates/patterns/React/347/212/266/346/200/201/347/256/241/347/220/206/350/247/204/350/214/203.md +0 -2
  672. package/templates/patterns/React/347/273/204/344/273/266/350/247/204/350/214/203.md +0 -2
  673. package/templates/patterns/React/350/241/250/345/215/225/350/247/204/350/214/203.md +0 -2
  674. package/templates/patterns/React/350/267/257/347/224/261/350/247/204/350/214/203.md +0 -2
  675. package/templates/patterns/SOLID/350/256/276/350/256/241/350/247/204/350/214/203.md +0 -2
  676. package/templates/patterns/Schema/345/205/274/345/256/271/350/247/204/350/214/203.md +0 -2
  677. package/templates/patterns/Vue/347/212/266/346/200/201/347/256/241/347/220/206/350/247/204/350/214/203.md +0 -2
  678. package/templates/patterns/Vue/347/273/204/344/273/266/350/247/204/350/214/203.md +0 -2
  679. package/templates/patterns/Vue/350/267/257/347/224/261/350/247/204/350/214/203.md +0 -2
  680. package/templates/patterns//344/272/213/344/273/266/351/251/261/345/212/250/350/247/204/350/214/203.md +0 -2
  681. package/templates/patterns//344/272/213/345/212/241/346/250/241/345/274/217/350/247/204/350/214/203.md +0 -2
  682. package/templates/patterns//344/274/230/351/233/205/345/201/234/346/234/272/350/247/204/350/214/203.md +0 -2
  683. package/templates/patterns//345/205/250/346/240/210/346/265/201/347/250/213/344/277/256/345/244/215.md +0 -2
  684. package/templates/patterns//345/210/206/351/241/265/346/237/245/350/257/242/350/247/204/350/214/203.md +0 -2
  685. package/templates/patterns//345/211/215/347/253/257/346/200/247/350/203/275/350/247/204/350/214/203.md +0 -2
  686. 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 +0 -2
  687. package/templates/patterns//345/221/275/345/220/215/350/247/204/350/214/203.md +0 -2
  688. package/templates/patterns//345/233/275/351/231/205/345/214/226/350/247/204/350/214/203.md +0 -2
  689. package/templates/patterns//345/242/236/345/210/240/346/224/271/346/237/245/350/247/204/350/214/203.md +0 -2
  690. package/templates/patterns//345/244/226/351/203/250/344/276/235/350/265/226/350/247/204/350/214/203.md +0 -2
  691. package/templates/patterns//345/245/221/347/272/246/345/205/274/345/256/271/350/247/204/350/214/203.md +0 -2
  692. package/templates/patterns//345/256/232/346/227/266/344/273/273/345/212/241/350/247/204/350/214/203.md +0 -2
  693. package/templates/patterns//345/256/236/346/227/266/346/216/250/351/200/201/350/247/204/350/214/203.md +0 -2
  694. package/templates/patterns//345/267/245/347/250/213/347/272/252/345/276/213.md +0 -2
  695. package/templates/patterns//345/271/266/345/217/221/346/216/247/345/210/266/350/247/204/350/214/203.md +0 -2
  696. package/templates/patterns//345/274/202/346/255/245/345/257/274/345/207/272/350/247/204/350/214/203.md +0 -2
  697. package/templates/patterns//346/216/245/345/217/243/345/245/221/347/272/246/350/247/204/350/214/203.md +0 -2
  698. package/templates/patterns//346/220/234/347/264/242/346/250/241/345/274/217/350/247/204/350/214/203.md +0 -2
  699. package/templates/patterns//346/225/260/346/215/256/351/232/220/347/247/201/350/247/204/350/214/203.md +0 -2
  700. package/templates/patterns//346/226/207/344/273/266/344/270/212/344/274/240/350/247/204/350/214/203.md +0 -2
  701. package/templates/patterns//346/227/240/351/232/234/347/242/215/350/247/204/350/214/203.md +0 -2
  702. package/templates/patterns//346/227/245/345/277/227/350/247/204/350/214/203.md +0 -2
  703. package/templates/patterns//346/235/203/351/231/220/350/256/244/350/257/201/350/247/204/350/214/203.md +0 -2
  704. package/templates/patterns//346/236/266/346/236/204/347/272/242/347/272/277.md +0 -2
  705. package/templates/patterns//346/265/213/350/257/225/350/264/250/351/207/217/350/247/204/350/214/203.md +0 -2
  706. package/templates/patterns//347/206/224/346/226/255/351/231/215/347/272/247/350/247/204/350/214/203.md +0 -2
  707. package/templates/patterns//347/212/266/346/200/201/346/265/201/350/275/254/350/247/204/350/214/203.md +0 -2
  708. package/templates/patterns//347/272/246/346/235/237/345/256/236/347/216/260/350/247/204/350/214/203.md +0 -2
  709. package/templates/patterns//347/274/223/345/255/230/347/255/226/347/225/245/350/247/204/350/214/203.md +0 -2
  710. package/templates/patterns//347/274/226/347/240/201/350/264/250/351/207/217/350/247/204/350/214/203.md +0 -2
  711. package/templates/patterns//347/274/272/351/231/267/347/256/241/347/220/206/350/247/204/350/214/203.md +0 -2
  712. package/templates/patterns//350/260/203/350/257/225/346/226/271/346/263/225/350/256/272.md +0 -2
  713. package/templates/patterns//350/276/223/345/205/245/346/240/241/351/252/214/350/247/204/350/214/203.md +0 -2
  714. package/templates/patterns//351/224/231/350/257/257/345/244/204/347/220/206/350/247/204/350/214/203.md +0 -2
  715. package/templates/patterns//351/224/231/350/257/257/350/276/271/347/225/214/350/247/204/350/214/203.md +0 -2
  716. 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 +0 -2
  717. package/templates/procedures/OOD/350/256/276/350/256/241/345/267/245/344/275/234/346/265/201.md +0 -3
  718. package/templates/procedures/Schema/345/217/230/346/233/264/346/265/201/346/260/264/347/272/277.md +4 -6
  719. 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 +0 -2
  720. package/templates/procedures//344/273/243/347/240/201/351/227/250/347/246/201/346/265/201/347/250/213.md +0 -2
  721. package/templates/procedures//344/273/273/345/212/241/346/213/206/350/247/243/346/265/201/347/250/213.md +0 -2
  722. package/templates/procedures//344/274/232/350/257/235/346/201/242/345/244/215/346/265/201/347/250/213.md +0 -3
  723. 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 +1 -2
  724. package/templates/procedures//345/212/237/350/203/275/345/274/200/345/217/221/346/265/201/347/250/213.md +0 -2
  725. 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 +0 -3
  726. package/templates/procedures//345/221/275/344/273/244/346/211/247/350/241/214/346/265/201/347/250/213.md +0 -2
  727. package/templates/procedures//345/221/275/344/273/244/350/267/257/347/224/261/346/265/201/347/250/213.md +38 -0
  728. 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 +3 -5
  729. package/templates/procedures//345/267/245/345/205/267/350/260/203/347/224/250/346/265/201/347/250/213.md +0 -2
  730. package/templates/procedures//346/200/247/350/203/275/346/265/201/346/260/264/347/272/277.md +3 -5
  731. package/templates/procedures//346/204/217/345/233/276/350/267/257/347/224/261/346/265/201/347/250/213.md +3 -3
  732. 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 +4 -6
  733. 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 +0 -2
  734. 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 +0 -2
  735. 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 +0 -2
  736. 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 +0 -2
  737. 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 +3 -5
  738. 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 +0 -2
  739. 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 +2 -4
  740. 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 +0 -2
  741. 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 +2 -4
  742. 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 +5 -7
  743. 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 +0 -2
  744. package/templates/procedures//350/207/252/344/270/273/351/200/211/345/236/213/346/265/201/347/250/213.md +1 -3
  745. 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 +0 -2
  746. package/templates/procedures//350/256/276/350/256/241/345/256/241/350/256/241/346/265/201/347/250/213.md +184 -0
  747. package/templates/procedures//350/257/246/347/273/206/350/256/276/350/256/241/346/265/201/347/250/213.md +0 -2
  748. package/templates/procedures//350/260/203/350/257/225/346/216/222/346/237/245/346/265/201/347/250/213.md +0 -2
  749. package/templates/procedures//350/277/201/347/247/273/346/265/201/346/260/264/347/272/277.md +3 -5
  750. package/templates/procedures//351/203/250/347/275/262/345/217/221/345/270/203/346/265/201/347/250/213.md +0 -2
  751. package/templates/procedures//351/207/215/346/236/204/346/265/201/346/260/264/347/272/277.md +3 -5
  752. package/templates/procedures//351/233/206/346/210/220/351/252/214/350/257/201/346/265/201/347/250/213.md +0 -2
  753. package/templates/procedures//351/234/200/346/261/202/346/276/204/346/270/205/346/265/201/347/250/213.md +2 -4
  754. package/templates/procedures//351/252/214/346/224/266/346/265/213/350/257/225/350/247/204/345/210/222.md +0 -2
  755. 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 +0 -3
  756. package/templates/rules/existing-system//350/200/246/345/220/210/346/243/200/346/265/213/350/247/204/345/210/231.md +0 -3
  757. 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 +0 -2
  758. 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 +0 -2
  759. 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 +0 -3
  760. 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 +0 -2
  761. package/templates/rules/shared/SOLID/344/273/243/347/240/201/345/256/241/346/237/245/350/247/204/345/210/231.md +0 -2
  762. 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 +0 -1
  763. 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 +0 -2
  764. 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 +0 -3
  765. 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 +0 -1
  766. 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 +0 -2
  767. 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 +0 -2
  768. package/templates/rules/shared//345/256/211/345/205/250/345/256/241/346/237/245/350/247/204/345/210/231.md +0 -2
  769. package/templates/rules/shared//345/271/266/345/217/221/345/256/241/346/237/245/350/247/204/345/210/231.md +0 -2
  770. package/templates/rules/shared//346/200/247/350/203/275/345/256/241/346/237/245/350/247/204/345/210/231.md +0 -2
  771. 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 +0 -2
  772. package/templates/rules/shared//346/236/266/346/236/204/345/256/241/346/237/245/350/247/204/345/210/231.md +0 -2
  773. 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 +0 -2
  774. package/templates/rules/shared//350/201/224/350/260/203/351/252/214/350/257/201/346/270/205/345/215/225.md +0 -2
  775. package/templates/rules/shared//350/246/206/347/233/226/347/216/207/346/240/207/345/207/206.md +0 -1
  776. package/templates/rules/shared//350/264/250/351/207/217/345/256/241/346/237/245/350/247/204/345/210/231.md +0 -2
  777. 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 +1 -2
  778. 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 +0 -2
  779. package/templates//346/250/241/347/211/210/350/264/241/347/214/256/346/214/207/345/215/227.md +0 -3
  780. package/dist/engine/contracts/route_decision_contract_verifier.d.ts +0 -44
  781. package/dist/engine/contracts/route_decision_contract_verifier.d.ts.map +0 -1
  782. package/dist/engine/contracts/route_decision_contract_verifier.js +0 -154
  783. package/dist/engine/contracts/route_decision_contract_verifier.js.map +0 -1
  784. package/dist/engine/pipeline/classifier.d.ts +0 -24
  785. package/dist/engine/pipeline/classifier.d.ts.map +0 -1
  786. package/dist/engine/pipeline/classifier.js +0 -209
  787. package/dist/engine/pipeline/classifier.js.map +0 -1
  788. package/dist/engine/pipeline/expand_pipeline.d.ts +0 -122
  789. package/dist/engine/pipeline/expand_pipeline.d.ts.map +0 -1
  790. package/dist/engine/pipeline/expand_pipeline.js +0 -141
  791. package/dist/engine/pipeline/expand_pipeline.js.map +0 -1
  792. package/dist/engine/pipeline/hook_context_types.d.ts +0 -66
  793. package/dist/engine/pipeline/hook_context_types.d.ts.map +0 -1
  794. package/dist/engine/pipeline/hook_context_types.js +0 -118
  795. package/dist/engine/pipeline/hook_context_types.js.map +0 -1
  796. package/dist/engine/pipeline/intent_expander/expand.d.ts +0 -16
  797. package/dist/engine/pipeline/intent_expander/expand.d.ts.map +0 -1
  798. package/dist/engine/pipeline/intent_expander/expand.js +0 -308
  799. package/dist/engine/pipeline/intent_expander/expand.js.map +0 -1
  800. package/dist/engine/pipeline/intent_route_scorer.d.ts +0 -45
  801. package/dist/engine/pipeline/intent_route_scorer.d.ts.map +0 -1
  802. package/dist/engine/pipeline/intent_route_scorer.js +0 -341
  803. package/dist/engine/pipeline/intent_route_scorer.js.map +0 -1
  804. package/dist/engine/pipeline/intent_router.d.ts +0 -132
  805. package/dist/engine/pipeline/intent_router.d.ts.map +0 -1
  806. package/dist/engine/pipeline/intent_router.js +0 -608
  807. package/dist/engine/pipeline/intent_router.js.map +0 -1
  808. package/dist/engine/pipeline/intent_signal_extractor.d.ts +0 -91
  809. package/dist/engine/pipeline/intent_signal_extractor.d.ts.map +0 -1
  810. package/dist/engine/pipeline/intent_signal_extractor.js +0 -296
  811. package/dist/engine/pipeline/intent_signal_extractor.js.map +0 -1
  812. package/dist/engine/pipeline/route_types.d.ts +0 -10
  813. package/dist/engine/pipeline/route_types.d.ts.map +0 -1
  814. package/dist/engine/pipeline/route_types.js +0 -9
  815. package/dist/engine/pipeline/route_types.js.map +0 -1
  816. package/dist/engine/pipeline/stage_gate_engine.d.ts +0 -34
  817. package/dist/engine/pipeline/stage_gate_engine.d.ts.map +0 -1
  818. package/dist/engine/pipeline/stage_gate_engine.js +0 -123
  819. package/dist/engine/pipeline/stage_gate_engine.js.map +0 -1
  820. package/dist/engine/pipeline/stage_prechecks.d.ts +0 -83
  821. package/dist/engine/pipeline/stage_prechecks.d.ts.map +0 -1
  822. package/dist/engine/pipeline/stage_prechecks.js +0 -199
  823. package/dist/engine/pipeline/stage_prechecks.js.map +0 -1
  824. package/dist/engine/workflow/legacy_type_migration.d.ts +0 -64
  825. package/dist/engine/workflow/legacy_type_migration.d.ts.map +0 -1
  826. package/dist/engine/workflow/legacy_type_migration.js +0 -228
  827. package/dist/engine/workflow/legacy_type_migration.js.map +0 -1
  828. package/dist/server/tools/tool_groups/classify_expand.d.ts +0 -3
  829. package/dist/server/tools/tool_groups/classify_expand.d.ts.map +0 -1
  830. package/dist/server/tools/tool_groups/classify_expand.js +0 -7
  831. package/dist/server/tools/tool_groups/classify_expand.js.map +0 -1
  832. package/dist/server/tools/tool_groups/classify_handler.d.ts +0 -3
  833. package/dist/server/tools/tool_groups/classify_handler.d.ts.map +0 -1
  834. package/dist/server/tools/tool_groups/classify_handler.js +0 -65
  835. package/dist/server/tools/tool_groups/classify_handler.js.map +0 -1
  836. package/dist/server/tools/tool_groups/expand_handler.d.ts +0 -3
  837. package/dist/server/tools/tool_groups/expand_handler.d.ts.map +0 -1
  838. package/dist/server/tools/tool_groups/expand_handler.js +0 -823
  839. package/dist/server/tools/tool_groups/expand_handler.js.map +0 -1
  840. package/dist/server/tools/tool_groups/status_plan_analyze_review.d.ts +0 -4
  841. package/dist/server/tools/tool_groups/status_plan_analyze_review.d.ts.map +0 -1
  842. package/dist/server/tools/tool_groups/status_plan_analyze_review.js +0 -395
  843. package/dist/server/tools/tool_groups/status_plan_analyze_review.js.map +0 -1
  844. package/dist/server/tools/tool_groups/verify_learn.d.ts +0 -3
  845. package/dist/server/tools/tool_groups/verify_learn.d.ts.map +0 -1
  846. package/dist/server/tools/tool_groups/verify_learn.js +0 -804
  847. package/dist/server/tools/tool_groups/verify_learn.js.map +0 -1
@@ -1,823 +0,0 @@
1
- // ── sf_expand 工具处理器 ──
2
- // 从 classify_expand.ts 第 116-965 行提取。
3
- // 系统中最复杂的工具处理器集合。
4
- import path from "node:path";
5
- import { promises as fsp } from "node:fs";
6
- import { createToolRegistrar } from "../middleware.js";
7
- import { ExpandSchema } from "../schemas.js";
8
- import { lazyExpander, lazyDesignArtifactPack, lazyDecisionWorkshop, lazyOodSolid, lazyBackendImplementation, lazyCodeObservability, lazyTraceability, lazyInputMaterial, lazyDecision, } from "../lazy_loaders.js";
9
- import { parseContractObject, CONTRACT_OBJECT_FIELDS, hasArchitectureIntentSignal, } from "../utils.js";
10
- import { checkArchitectureDecisionWorkshopGate, checkArchitectureDesignGate, checkExistingSystemAnalysisGate, } from "../gate_checks.js";
11
- import { checkDecisionSovereigntyGate, checkDetailDisciplineGate, checkFirstPrinciplesGate, checkBrainstormGate, } from "../cep_assessment.js";
12
- import { TOOL_DIAGNOSTIC_CODES } from "../../../engine/audit/diagnostic_registry.js";
13
- import { normalizePathCandidate } from "../../../engine/pipeline/input_material_extractor.js";
14
- import { isSameOrDescendantPath } from "../../../engine/core/path_scope_utils.js";
15
- import { errorMessage } from "../../../engine/core/helpers.js";
16
- import { detectTaskStage } from "../../../engine/pipeline/task_stage_detector.js";
17
- export async function registerExpandTool(ctx) {
18
- const { registerSafeTool } = createToolRegistrar(ctx);
19
- const { taskContext, config, knowledgeIndex, projectPath, gateway, ioController } = ctx;
20
- // ── sf_expand: 意图膨胀,生成结构化 prompt 并注入计划上下文 ──
21
- registerSafeTool("sf_expand", "将意图膨胀为结构化 prompt,包含 scope、验收标准和知识匹配。当存在计划时自动注入当前阶段上下文和输出模板", ExpandSchema, async (args) => {
22
- const ctx = await taskContext.load(args.task_id);
23
- if (!ctx || !ctx.classification) {
24
- return { result: { error: "任务不存在或尚未分类,请先调用 sf_classify" } };
25
- }
26
- // 合并校验 + 应用:ctx 已存储值 → args 覆盖值,统一解析和规范化
27
- let needsSave = false;
28
- for (const field of CONTRACT_OBJECT_FIELDS) {
29
- // args 优先,其次 ctx 已存储值
30
- const raw = args[field] ?? ctx[field];
31
- if (!raw)
32
- continue;
33
- const parsed = parseContractObject(raw, field);
34
- if (parsed.error)
35
- return { result: { error: parsed.error, status: "invalid_input" } };
36
- if (parsed.value) {
37
- ctx[field] = field === "decision_workshop"
38
- ? ((await lazyDecisionWorkshop()).normalizeDecisionWorkshopContract(parsed.value, args.task_id) ?? parsed.value)
39
- : parsed.value;
40
- needsSave = true;
41
- }
42
- }
43
- if (needsSave)
44
- await taskContext.save(ctx);
45
- // 状态守卫:classifying/expanding/clarifying/failed → expanding
46
- if (ctx.status === "classifying" || ctx.status === "clarifying" || ctx.status === "failed") {
47
- await taskContext.updateStatus(args.task_id, "expanding");
48
- ctx.status = "expanding";
49
- }
50
- else if (ctx.status !== "expanding") {
51
- return {
52
- result: { error: `任务状态 ${ctx.status} 不可膨胀,需要 classifying 或 expanding`, status: ctx.status },
53
- };
54
- }
55
- // 构建计划上下文(如果存在计划)
56
- let planContext;
57
- if (ctx.planning && ctx.planning.sub_tasks.length > 0 && ctx.planning.current_step_index < ctx.planning.sub_tasks.length) {
58
- const currentStep = ctx.planning.sub_tasks[ctx.planning.current_step_index];
59
- const previousOutputs = {};
60
- // 读取前序步骤的产出文件(P3: 产物系统)
61
- for (let i = 0; i < ctx.planning.current_step_index; i++) {
62
- const step = ctx.planning.sub_tasks[i];
63
- if (step.output_path) {
64
- try {
65
- const fs = await import("node:fs/promises");
66
- const content = await fs.readFile(step.output_path, "utf-8");
67
- previousOutputs[step.title] = content;
68
- }
69
- catch {
70
- // 文件不存在则跳过
71
- }
72
- }
73
- }
74
- planContext = { current_step: currentStep, previous_outputs: previousOutputs };
75
- }
76
- // H1: Token 预算检查 — advisory 模式,仅警告不阻断
77
- gateway.beginTask(args.task_id);
78
- let h1Warning;
79
- try {
80
- const gateResult = gateway.request("solution_brainstorm");
81
- if (!gateResult.allowed) {
82
- h1Warning = { warning: `H1 advisory: ${gateResult.reason}`, budget_remaining: gateResult.remaining_budget };
83
- }
84
- }
85
- catch (e) {
86
- h1Warning = { warning: `H1 advisory: ${errorMessage(e)}`, budget_remaining: 0 };
87
- }
88
- // H4: advisory-only — 不获取持久锁,仅检查当前锁定状态
89
- let h4LockWarning;
90
- const lockStatus = await ioController.isLocked();
91
- if (lockStatus.locked && lockStatus.task_id !== args.task_id) {
92
- h4LockWarning = `H4 advisory: 工作区已被任务 ${lockStatus.task_id} 锁定(${lockStatus.reason ?? "未知"}),当前 H4 未进入强制层`;
93
- }
94
- let expansion;
95
- try {
96
- // 检测当前任务阶段,传入知识注入管线
97
- const detectedStage = detectTaskStage(ctx);
98
- expansion = await (await lazyExpander()).expand({
99
- intent: ctx.intent,
100
- classification: ctx.classification,
101
- projectPath,
102
- config,
103
- knowledgeIndex,
104
- clarificationAnswers: args.clarification_answers,
105
- route_decision: ctx.classification?.route_decision,
106
- plan_context: planContext,
107
- input_material_confirmations: args.input_material_confirmations,
108
- task_id: args.task_id,
109
- brainstorm_session: ctx.brainstorm_session ?? undefined,
110
- task_stage: detectedStage,
111
- });
112
- }
113
- catch (expandErr) {
114
- // 尝试回退到 failed 状态,避免任务停留在 expanding
115
- try {
116
- await taskContext.updateStatus(args.task_id, "failed");
117
- }
118
- catch {
119
- // 状态转换非法(如已非 expanding),忽略
120
- }
121
- throw expandErr;
122
- }
123
- finally {
124
- if (!h1Warning)
125
- gateway.completeOperation();
126
- gateway.endTask();
127
- }
128
- expansion.task_id = args.task_id;
129
- const projectRoot = await fsp.realpath(projectPath);
130
- const referencedMaterialPaths = new Set((expansion.input_materials ?? [])
131
- .map((material) => material.path_or_ref)
132
- .filter((materialPath) => typeof materialPath === "string" && materialPath.length > 0)
133
- .map((materialPath) => path.resolve(projectRoot, normalizePathCandidate(materialPath))));
134
- const _confirmedCandidates = (args.input_material_confirmations ?? [])
135
- .map((materialPath) => path.resolve(projectRoot, normalizePathCandidate(materialPath)))
136
- .filter((absolutePath) => isSameOrDescendantPath(absolutePath, projectRoot, { caseSensitive: false }))
137
- .filter((absolutePath) => referencedMaterialPaths.has(absolutePath));
138
- const confirmedProjectSourcePaths = [];
139
- for (const absolutePath of _confirmedCandidates) {
140
- try {
141
- if ((await fsp.stat(absolutePath)).isFile()
142
- && (await fsp.realpath(absolutePath)).startsWith(`${projectRoot}${path.sep}`)) {
143
- confirmedProjectSourcePaths.push(absolutePath);
144
- }
145
- }
146
- catch {
147
- // 跳过无效路径
148
- }
149
- }
150
- const registerConfirmedProjectSources = (registry) => {
151
- for (const absolutePath of confirmedProjectSourcePaths) {
152
- const sourceRef = path.relative(projectRoot, absolutePath);
153
- registry.register({
154
- source_type: "project_file",
155
- evidence_role: "project_source_file",
156
- authority: "authoritative",
157
- freshness: "current",
158
- permission: "allowed",
159
- scope: "confirmed_input_material",
160
- description: `已确认项目输入材料: ${sourceRef}`,
161
- source_ref: sourceRef,
162
- });
163
- }
164
- };
165
- const workflowIntent = ctx.route_decision?.workflow_intent ?? ctx.classification.route_decision?.workflow_intent;
166
- // 问题六十: 高风险项目事实声明先过证据门,避免后续架构研讨门遮蔽无证据问题。
167
- let evidenceGateAlreadyChecked = false;
168
- {
169
- const evRoute = ctx.route_decision?.route ?? ctx.classification?.route_decision?.route;
170
- const evWorkflowIntent = ctx.route_decision?.workflow_intent ?? ctx.classification?.route_decision?.workflow_intent;
171
- const evRisk = (await import("../../../engine/contracts/evidence_grounding_contract.js")).assessTaskRisk(ctx.classification?.task_type, evRoute, ctx.intent);
172
- const isArchitectureContext = evWorkflowIntent === "architecture_design"
173
- || evWorkflowIntent === "existing_system_gap_analysis"
174
- || evRoute === "artifact_generation"
175
- || hasArchitectureIntentSignal(ctx.intent);
176
- if (isArchitectureContext && (evRisk === "high" || evRisk === "critical")) {
177
- const { createEvidenceGroundingSystem } = await import("../../../engine/contracts/evidence_grounding_contract.js");
178
- const evg = createEvidenceGroundingSystem();
179
- evg.registry.register({
180
- source_type: "task_context",
181
- evidence_role: "classification",
182
- authority: "authoritative",
183
- freshness: "current",
184
- permission: "allowed",
185
- scope: "classification",
186
- description: "任务分类结果",
187
- source_ref: `task:${args.task_id}`,
188
- });
189
- if (knowledgeIndex) {
190
- const { project } = knowledgeIndex.getAllEntries();
191
- for (const entry of project) {
192
- if (entry.status !== "active")
193
- continue;
194
- evg.registry.register({
195
- source_type: "knowledge_asset",
196
- evidence_role: "template_guidance",
197
- authority: "trusted",
198
- freshness: "current",
199
- permission: "allowed",
200
- scope: entry.scope?.join(",") ?? "knowledge",
201
- description: entry.name,
202
- source_ref: entry.file_path,
203
- });
204
- }
205
- }
206
- const tdc = ctx.technology_decision_contract;
207
- if (tdc?.human_gate_evidence) {
208
- evg.registry.register({
209
- source_type: "user_confirmation",
210
- evidence_role: "user_confirmation",
211
- authority: "authoritative",
212
- freshness: "current",
213
- permission: "allowed",
214
- scope: "technology_decision",
215
- description: `技术决策确认: ${tdc.decision_scope ?? "general"}`,
216
- source_ref: `decision:${tdc.decision_id ?? args.task_id}`,
217
- });
218
- }
219
- registerConfirmedProjectSources(evg.registry);
220
- const evClaims = [
221
- {
222
- id: "claim-expand-0",
223
- category: "user_confirmation",
224
- claim_text: "任务路由和执行范围已确认",
225
- evidence_ids: evg.registry.query({ source_type: "task_context" }).map((e) => e.id),
226
- is_uncertain: false,
227
- risk_level: evRisk,
228
- },
229
- {
230
- id: "claim-expand-1",
231
- category: "architecture",
232
- claim_text: "技术方案基于现有系统分析",
233
- evidence_ids: evg.registry.query({}).filter((e) => e.evidence_role && e.evidence_role !== "template_guidance" && e.evidence_role !== "classification").map((e) => e.id),
234
- is_uncertain: false,
235
- risk_level: evRisk,
236
- },
237
- ];
238
- const evMatrix = evg.builder.buildContext(evClaims, {
239
- target_claims: evClaims.map((c) => c.claim_text),
240
- source_types: [],
241
- keywords: [],
242
- max_results: 10,
243
- });
244
- evMatrix.task_id = args.task_id;
245
- const evGate = evg.gate.evaluate(evMatrix, evRisk);
246
- await taskContext.setEvidenceGroundingResult(args.task_id, {
247
- evidence_matrix: evMatrix,
248
- evidence_gate_result: evGate,
249
- unsupported_claims: evGate.unsupported_claims,
250
- conflict_resolutions: evMatrix.conflicts,
251
- });
252
- if (!evGate.allowed) {
253
- return {
254
- result: {
255
- error: `证据驱动门禁阻断: ${evGate.reason_zh}`,
256
- diagnostic_code: evGate.diagnostic_code,
257
- reason_zh: evGate.reason_zh,
258
- unsupported_claims: evGate.unsupported_claims,
259
- missing_evidence: evGate.missing_evidence,
260
- status: "blocked",
261
- recovery: "请提供项目文件、命令输出或其他权威证据支撑关键声明后重新 sf_expand",
262
- },
263
- };
264
- }
265
- evidenceGateAlreadyChecked = true;
266
- }
267
- }
268
- // 问题六十一: 架构设计前的六域研讨门独立执行,不得被施工指令契约有无绕过。
269
- let existingSourceRoot = false;
270
- for (const candidate of ["src", "backend", "frontend", "apps", "services"]) {
271
- if (await fsp.access(path.join(projectPath, candidate)).then(() => true, () => false)) {
272
- existingSourceRoot = true;
273
- break;
274
- }
275
- }
276
- let existingManifest = false;
277
- for (const candidate of ["package.json", "pom.xml", "build.gradle", "settings.gradle"]) {
278
- if (await fsp.access(path.join(projectPath, candidate)).then(() => true, () => false)) {
279
- existingManifest = true;
280
- break;
281
- }
282
- }
283
- const detectedArchitectureContext = existingSourceRoot && existingManifest
284
- ? "existing_system"
285
- : (!existingSourceRoot && !existingManifest ? "empty_project" : "new_system");
286
- const workshopGate = await checkArchitectureDecisionWorkshopGate({
287
- ctx,
288
- workflowIntent,
289
- projectContext: detectedArchitectureContext,
290
- });
291
- await taskContext.save(ctx);
292
- if (!workshopGate.allowed) {
293
- return {
294
- result: {
295
- error: "架构设计前必须先完成六类架构决策研讨与用户确认",
296
- status: "awaiting_confirmation",
297
- architecture_decision_workshop: workshopGate.contract,
298
- blocking_findings: workshopGate.findings,
299
- next_domain: workshopGate.next_domain,
300
- recovery: "请从当前待讨论域开始,提供候选方案、推荐理由、风险和用户确认后重新调用 sf_expand",
301
- },
302
- };
303
- }
304
- // 六域决策闭合后创建设计产物生命周期;正式设计与后续实现必须以其复验结果为准。
305
- if (workflowIntent === "architecture_design" && !ctx.design_artifact_pack) {
306
- const designModule = await lazyDesignArtifactPack();
307
- ctx.design_artifact_pack = designModule.createDesignArtifactPack(args.task_id);
308
- ctx.design_artifact_pack.status = "awaiting_decisions";
309
- ctx.design_artifact_pack.decision_workshop_ref = `task:${args.task_id}:architecture_decision_workshop`;
310
- ctx.design_artifact_pack.user_confirmation_ref = ctx.architecture_decision_workshop?.document_output_confirmation_ref;
311
- await taskContext.save(ctx);
312
- }
313
- // 问题六十一(通用): 可组合决策包门禁
314
- const dwModule = await lazyDecisionWorkshop();
315
- const packMatch = dwModule.matchDecisionPacks({
316
- workflow_intent: workflowIntent,
317
- intent: ctx.intent,
318
- task_type: ctx.classification?.task_type,
319
- });
320
- // 过滤掉架构(架构由上面的专用子包处理)
321
- const nonArchPacks = packMatch.packs.filter((p) => p !== "architecture");
322
- if (nonArchPacks.length > 0) {
323
- const dwContract = ctx.decision_workshop ?? dwModule.createDecisionWorkshop(args.task_id, nonArchPacks, detectedArchitectureContext, packMatch.reasons.join(";"));
324
- const dwGate = dwModule.evaluateDecisionWorkshop(dwContract);
325
- ctx.decision_workshop = dwModule.applyDecisionWorkshopGate(dwContract);
326
- await taskContext.save(ctx);
327
- if (!dwGate.allowed) {
328
- return {
329
- result: {
330
- error: `${packMatch.reasons.join(";")},必须先完成决策研讨与用户确认`,
331
- status: "awaiting_confirmation",
332
- decision_workshop: ctx.decision_workshop,
333
- blocking_findings: dwGate.blocking_findings,
334
- next_domain: dwGate.next_domain,
335
- activated_packs: nonArchPacks,
336
- recovery: "请从当前待讨论域开始,提供候选方案、推荐理由、风险和用户确认后重新调用 sf_expand",
337
- },
338
- };
339
- }
340
- }
341
- // 问题四十九/五十: 已有架构合同或现有系统证据的进一步审查。
342
- const expansionRoute = expansion?.workflow_trace
343
- ? expansion?.workflow_trace?.route
344
- : undefined;
345
- const hasInstructionContract = !!ctx?.instruction_contract;
346
- if (hasInstructionContract) {
347
- if (expansionRoute === "artifact_generation" || expansionRoute === "analysis") {
348
- const archGate = await checkArchitectureDesignGate({ ctx, route: expansionRoute });
349
- if (!archGate.allowed) {
350
- return {
351
- result: {
352
- error: archGate.reason_zh,
353
- architecture_gate_findings: archGate.findings,
354
- status: "blocked",
355
- recovery: "架构设计审查未通过,请补充缺失项后重新 sf_expand",
356
- },
357
- };
358
- }
359
- }
360
- if (expansionRoute === "code_change" || expansionRoute === "artifact_generation") {
361
- const analysisGate = await checkExistingSystemAnalysisGate({
362
- hasExistingCode: !!config?.tech_stack,
363
- hasPackageJson: !!projectPath,
364
- hasSrcDir: true,
365
- hasAnalysis: !!ctx.existing_system_analysis,
366
- hasGapAnalysis: !!ctx.requirement_gap_analysis,
367
- });
368
- if (!analysisGate.allowed) {
369
- return {
370
- result: {
371
- error: `现有系统分析门禁未通过: ${analysisGate.reason_zh}`,
372
- missing_analysis: analysisGate.missing_analysis,
373
- status: "blocked",
374
- recovery: "请先对现有项目执行系统分析和差距分析,再继续架构设计或编码",
375
- },
376
- };
377
- }
378
- }
379
- }
380
- // ── S4 gates: 轻量路径(acceptance/review/read_only)整体跳过 ──
381
- const isLightweightRoute = expansionRoute === "acceptance" || expansionRoute === "review"
382
- || expansionRoute === "direct_answer" || expansionRoute === "analysis";
383
- if (!isLightweightRoute) {
384
- // ── S4 gates: 独立于 hasInstructionContract,由 requires* 触发判定 ──
385
- // 问题十六: 技术选型决策主权 gate — 高影响技术决策缺证据时 blocked
386
- {
387
- const decisionGate = await checkDecisionSovereigntyGate({ ctx, route: expansionRoute });
388
- if (!decisionGate.allowed) {
389
- return {
390
- result: {
391
- error: decisionGate.reason_zh,
392
- status: "blocked",
393
- expected_schema: decisionGate.expected_schema,
394
- recovery: decisionGate.requires_human_gate ? "请提供技术决策确认证据(human_gate_evidence)" : "技术选型决策校验失败,请按照 expected_schema 格式提供 technology_decision_contract",
395
- },
396
- };
397
- }
398
- }
399
- // 问题二十六: 细节纪律 gate — 复杂任务缺关键细节时 blocked
400
- {
401
- const detailGate = await checkDetailDisciplineGate({ ctx, route: expansionRoute });
402
- if (!detailGate.allowed) {
403
- return {
404
- result: {
405
- error: detailGate.reason_zh,
406
- missing_details: detailGate.missing_details,
407
- status: "blocked",
408
- recovery: "多步骤/复杂任务缺 detail_discipline_contract,请提供后重新 sf_expand",
409
- },
410
- };
411
- }
412
- }
413
- // 问题二十七: 第一性原理 gate — 高影响任务缺推理时 blocked
414
- {
415
- const fpGate = await checkFirstPrinciplesGate({ ctx, route: expansionRoute });
416
- if (!fpGate.allowed) {
417
- return {
418
- result: {
419
- error: fpGate.reason_zh,
420
- failures: fpGate.failures,
421
- expected_schema: fpGate.expected_schema,
422
- status: "blocked",
423
- recovery: "高影响任务缺 first_principles_frame,请按照 expected_schema 格式提供后重新 sf_expand",
424
- },
425
- };
426
- }
427
- }
428
- // 问题四十二(brainstorm): 脑暴契约 gate — 不确定项缺方案探索时 blocked
429
- {
430
- const brainstormGate = await checkBrainstormGate({ ctx, route: expansionRoute });
431
- if (!brainstormGate.allowed) {
432
- return {
433
- result: {
434
- error: brainstormGate.reason_zh,
435
- violations: brainstormGate.violations,
436
- expected_schema: brainstormGate.expected_schema,
437
- status: "blocked",
438
- recovery: "不确定项/方案选择缺 brainstorm_session,请按照 expected_schema 格式提供后重新 sf_expand",
439
- },
440
- };
441
- }
442
- }
443
- // 问题六十六/六十七/六十八: 编码前工程约束必须聚合返回。
444
- // 不能让 OOD 或后端工程门禁抢先返回,遮蔽用户项目的注释/日志契约。
445
- {
446
- const preImplementationBlocks = [];
447
- const preImplementationPayload = {};
448
- const artifactDesignIntent = expansionRoute === "artifact_generation"
449
- || ["architecture_design", "detailed_design", "database_design", "api_design"].includes(String(workflowIntent))
450
- || /(?:架构|数据库|API|接口|OpenAPI).{0,12}(?:设计|规格|文档)|(?:设计|规格|文档).{0,12}(?:API|接口|OpenAPI)/i.test(ctx.intent);
451
- const isImplementationRoute = !artifactDesignIntent && (expansionRoute === "code_change"
452
- || String(workflowIntent) === "backend_api_implementation"
453
- || String(workflowIntent) === "frontend_business_logic"
454
- || /编码|实现|开发|controller|service|component/i.test(ctx.intent));
455
- const traceabilityModule = await lazyTraceability();
456
- const traceReport = isImplementationRoute
457
- ? traceabilityModule.auditDesignImplementationTraceability(projectPath)
458
- : {
459
- passed: true,
460
- matrix_exists: false,
461
- findings: [],
462
- checked_files: [],
463
- matrix_path: traceabilityModule.DEFAULT_DESIGN_IMPLEMENTATION_TRACEABILITY_PATH,
464
- };
465
- if (isImplementationRoute && !traceReport.passed) {
466
- ctx.traceability_binding = {
467
- requirement_ids: [],
468
- prototype_ids: [],
469
- architecture_ids: [],
470
- detail_design_ids: [],
471
- phase_ids: [],
472
- slice_ids: [],
473
- acceptance_ids: [],
474
- status: "needs_backfill",
475
- findings: traceReport.findings.map((finding) => `${finding.code}: ${finding.message_zh}`),
476
- };
477
- await taskContext.save(ctx);
478
- return {
479
- result: {
480
- error: "需求/原型/设计/切片/验收追踪链路未闭合,不得进入编码实现",
481
- status: "blocked",
482
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.traceabilityMissing,
483
- traceability_findings: traceReport.findings,
484
- checked_files: traceReport.checked_files,
485
- matrix_path: traceReport.matrix_path,
486
- template_path: traceabilityModule.DESIGN_IMPLEMENTATION_TRACEABILITY_TEMPLATE_PATH,
487
- recovery_command: traceabilityModule.DESIGN_IMPLEMENTATION_TRACEABILITY_RECOVERY_COMMAND,
488
- recovery: `${traceabilityModule.DESIGN_IMPLEMENTATION_TRACEABILITY_RECOVERY_GUIDANCE}。不得取消任务后直接写代码,不得改用 Bash 绕过追踪矩阵。`,
489
- },
490
- };
491
- }
492
- const traceBindingIds = traceabilityModule.extractTraceabilityBindingIds(ctx);
493
- if (traceReport.matrix_exists && isImplementationRoute) {
494
- const missingPrefixes = ["PHASE", "SLICE", "DD", "AC"].filter((prefix) => !traceBindingIds.some((id) => id.startsWith(`${prefix}-`)));
495
- if (missingPrefixes.length > 0) {
496
- ctx.traceability_binding = {
497
- requirement_ids: traceBindingIds.filter((id) => id.startsWith("REQ-")),
498
- prototype_ids: traceBindingIds.filter((id) => id.startsWith("PROTO-")),
499
- architecture_ids: traceBindingIds.filter((id) => id.startsWith("ARCH-")),
500
- detail_design_ids: traceBindingIds.filter((id) => id.startsWith("DD-")),
501
- phase_ids: traceBindingIds.filter((id) => id.startsWith("PHASE-")),
502
- slice_ids: traceBindingIds.filter((id) => id.startsWith("SLICE-")),
503
- acceptance_ids: traceBindingIds.filter((id) => id.startsWith("AC-")),
504
- status: "missing",
505
- findings: missingPrefixes.map((prefix) => `编码前缺少 ${prefix}-* 绑定`),
506
- };
507
- await taskContext.save(ctx);
508
- return {
509
- result: {
510
- error: "编码任务必须先绑定阶段、切片、详细设计和验收 ID",
511
- status: "awaiting_traceability_binding",
512
- diagnostic_code: TOOL_DIAGNOSTIC_CODES.traceabilityBindingMissing,
513
- missing_prefixes: missingPrefixes,
514
- matrix_path: traceReport.matrix_path,
515
- template_path: traceabilityModule.DESIGN_IMPLEMENTATION_TRACEABILITY_TEMPLATE_PATH,
516
- recovery_command: "sf_expand",
517
- recovery: "在任务上下文或指令中明确本次实现对应的 PHASE-*、SLICE-*、DD-*、AC-*,再重新调用 sf_expand;不得脱离已确认设计直接编码,不得取消任务后改用 Bash/Edit/Write 直接实现",
518
- },
519
- };
520
- }
521
- ctx.traceability_binding = {
522
- requirement_ids: traceBindingIds.filter((id) => id.startsWith("REQ-")),
523
- prototype_ids: traceBindingIds.filter((id) => id.startsWith("PROTO-")),
524
- architecture_ids: traceBindingIds.filter((id) => id.startsWith("ARCH-")),
525
- detail_design_ids: traceBindingIds.filter((id) => id.startsWith("DD-")),
526
- phase_ids: traceBindingIds.filter((id) => id.startsWith("PHASE-")),
527
- slice_ids: traceBindingIds.filter((id) => id.startsWith("SLICE-")),
528
- acceptance_ids: traceBindingIds.filter((id) => id.startsWith("AC-")),
529
- status: "bound",
530
- findings: [],
531
- };
532
- preImplementationPayload.traceability_binding = ctx.traceability_binding;
533
- }
534
- const oodModule = await lazyOodSolid();
535
- const oodGate = oodModule.evaluateOodDesignGate({
536
- task_id: args.task_id,
537
- intent: ctx.intent,
538
- route: expansionRoute,
539
- summary: ctx.ood_solid_summary,
540
- });
541
- if (oodGate.applicable) {
542
- ctx.ood_solid_summary = oodGate.required_summary;
543
- preImplementationPayload.ood_solid_summary = oodGate.required_summary;
544
- }
545
- if (!oodGate.allowed) {
546
- preImplementationBlocks.push({
547
- code: TOOL_DIAGNOSTIC_CODES.oodMissingSummary,
548
- reason_zh: oodGate.reason_zh,
549
- });
550
- }
551
- const backendModule = await lazyBackendImplementation();
552
- const backendGate = backendModule.evaluateBackendImplementationGate({
553
- task_id: args.task_id,
554
- intent: ctx.intent,
555
- route: expansionRoute,
556
- work_package: ctx.backend_implementation_work_package,
557
- });
558
- if (backendGate.applicable) {
559
- ctx.backend_implementation_work_package = backendGate.work_package;
560
- preImplementationPayload.backend_implementation_work_package = backendGate.work_package;
561
- }
562
- if (!backendGate.allowed) {
563
- preImplementationBlocks.push({
564
- code: TOOL_DIAGNOSTIC_CODES.backendMissingSummary,
565
- reason_zh: backendGate.reason_zh,
566
- });
567
- }
568
- if (ctx.classification.task_type !== "scaffold") {
569
- const obsModule = await lazyCodeObservability();
570
- const obsGate = obsModule.evaluateCodeObservabilityGate({
571
- task_id: args.task_id,
572
- intent: ctx.intent,
573
- route: expansionRoute,
574
- changed_files: ctx.execution?.changed_files,
575
- work_package: ctx.code_observability_work_package,
576
- });
577
- if (obsGate.applicable) {
578
- ctx.code_observability_work_package = obsGate.work_package;
579
- preImplementationPayload.code_observability_work_package = obsGate.work_package;
580
- }
581
- if (!obsGate.allowed) {
582
- preImplementationBlocks.push({
583
- code: TOOL_DIAGNOSTIC_CODES.codeObservabilityWorkPackage,
584
- reason_zh: obsGate.reason_zh,
585
- });
586
- }
587
- }
588
- if (Object.keys(preImplementationPayload).length > 0) {
589
- await taskContext.save(ctx);
590
- }
591
- if (preImplementationBlocks.length > 0) {
592
- return {
593
- result: {
594
- error: "编码前工程契约未全部确认,不得开始实现",
595
- status: "awaiting_implementation_contracts",
596
- diagnostic_codes: preImplementationBlocks.map((b) => b.code),
597
- blocking_findings: preImplementationBlocks,
598
- ...preImplementationPayload,
599
- recovery: "请同时确认 OOD/SOLID、后端工程边界、代码注释与日志契约后重新调用 sf_expand",
600
- },
601
- };
602
- }
603
- }
604
- } // end if (!isLightweightRoute) — 轻量路径跳过 S4 gates + 编码前工程约束
605
- // Input Material Contract: 处理 hard-blocking 结果
606
- // Privacy Gate: 隐私/敏感信息策略阻断
607
- const isBlocked = expansion.prompt.startsWith("## 阻塞:输入材料禁止读取")
608
- || expansion.prompt.startsWith("## 阻塞:隐私/敏感信息策略");
609
- if (expansion.prompt.startsWith("## 澄清请求") && expansion.input_materials) {
610
- for (const m of expansion.input_materials) {
611
- if (m.access_mode !== "forbidden" && (await lazyInputMaterial()).classifyIngestionStatus(m.path_or_ref) === "requires_confirmation") {
612
- break;
613
- }
614
- }
615
- }
616
- // 注入 H1/H4 advisory warnings
617
- const advisories = {};
618
- if (h1Warning)
619
- advisories.h1_advisory = h1Warning;
620
- if (h4LockWarning)
621
- advisories.h4_advisory = h4LockWarning;
622
- // 问题六十:证据驱动门禁 — 高风险任务必须阻断无证据声明(跳过已被上方架构早期门禁处理的场景)
623
- if (!evidenceGateAlreadyChecked) {
624
- const _evRoute = ctx.route_decision?.route ?? ctx.classification?.route_decision?.route;
625
- const _evRisk = (await import("../../../engine/contracts/evidence_grounding_contract.js")).assessTaskRisk(ctx.classification?.task_type, _evRoute, ctx.intent);
626
- if (_evRisk === "high" || _evRisk === "critical") {
627
- const { createEvidenceGroundingSystem } = await import("../../../engine/contracts/evidence_grounding_contract.js");
628
- const _evg = createEvidenceGroundingSystem();
629
- if (ctx.classification) {
630
- _evg.registry.register({
631
- source_type: "task_context",
632
- evidence_role: "classification",
633
- authority: "authoritative",
634
- freshness: "current",
635
- permission: "allowed",
636
- scope: "classification",
637
- description: "任务分类结果",
638
- source_ref: `task:${args.task_id}`,
639
- });
640
- }
641
- // 注册知识索引中的项目知识作为证据(仅项目级,不含全局通用规则)
642
- // 所有知识索引条目都是 template_guidance 角色,不得支撑项目事实声明
643
- if (knowledgeIndex) {
644
- const { project } = knowledgeIndex.getAllEntries();
645
- for (const entry of project) {
646
- if (entry.status !== "active")
647
- continue;
648
- _evg.registry.register({
649
- source_type: "knowledge_asset",
650
- evidence_role: "template_guidance",
651
- authority: "trusted",
652
- freshness: "current",
653
- permission: "allowed",
654
- scope: entry.scope?.join(",") ?? "knowledge",
655
- description: entry.name,
656
- source_ref: entry.file_path,
657
- });
658
- }
659
- }
660
- // 技术决策契约含 human_gate_evidence → 注册为 user_confirmation(真实项目证据)
661
- const _tdc = ctx.technology_decision_contract;
662
- if (_tdc?.human_gate_evidence) {
663
- _evg.registry.register({
664
- source_type: "user_confirmation",
665
- evidence_role: "user_confirmation",
666
- authority: "authoritative",
667
- freshness: "current",
668
- permission: "allowed",
669
- scope: "technology_decision",
670
- description: `技术决策确认: ${_tdc.decision_scope ?? "general"}`,
671
- source_ref: `decision:${_tdc.decision_id ?? args.task_id}`,
672
- });
673
- }
674
- registerConfirmedProjectSources(_evg.registry);
675
- const _evClaims = [
676
- {
677
- id: "claim-expand-0",
678
- category: "user_confirmation",
679
- claim_text: "任务路由和执行范围已确认",
680
- evidence_ids: _evg.registry.query({ source_type: "task_context" }).map((e) => e.id),
681
- is_uncertain: false,
682
- risk_level: _evRisk,
683
- },
684
- ];
685
- // 只在架构设计/现有系统分析场景生成 architecture claim
686
- const _evWorkflowIntent = ctx.route_decision?.workflow_intent ?? ctx.classification?.route_decision?.workflow_intent;
687
- const _isArchitectureContext = _evWorkflowIntent === "architecture_design"
688
- || _evWorkflowIntent === "existing_system_gap_analysis"
689
- || _evRoute === "artifact_generation"
690
- || hasArchitectureIntentSignal(ctx.intent);
691
- if (_isArchitectureContext) {
692
- _evClaims.push({
693
- id: "claim-expand-1",
694
- category: "architecture",
695
- claim_text: "技术方案基于现有系统分析",
696
- evidence_ids: _evg.registry.query({}).filter((e) => e.evidence_role && e.evidence_role !== "template_guidance" && e.evidence_role !== "classification").map((e) => e.id),
697
- is_uncertain: false,
698
- risk_level: _evRisk,
699
- });
700
- }
701
- const _evMatrix = _evg.builder.buildContext(_evClaims, {
702
- target_claims: _evClaims.map((c) => c.claim_text),
703
- source_types: [], keywords: [], max_results: 10,
704
- });
705
- _evMatrix.task_id = args.task_id;
706
- const _evGate = _evg.gate.evaluate(_evMatrix, _evRisk);
707
- // 写回 TaskContext(blocked 也保存)
708
- await taskContext.setEvidenceGroundingResult(args.task_id, {
709
- evidence_matrix: _evMatrix,
710
- evidence_gate_result: _evGate,
711
- unsupported_claims: _evGate.unsupported_claims,
712
- conflict_resolutions: _evMatrix.conflicts,
713
- });
714
- if (!_evGate.allowed) {
715
- return {
716
- result: {
717
- error: `证据驱动门禁阻断: ${_evGate.reason_zh}`,
718
- diagnostic_code: _evGate.diagnostic_code,
719
- reason_zh: _evGate.reason_zh,
720
- unsupported_claims: _evGate.unsupported_claims,
721
- missing_evidence: _evGate.missing_evidence,
722
- status: "blocked",
723
- recovery: "请提供项目文件、命令输出或其他权威证据支撑关键声明后重新 sf_expand",
724
- },
725
- };
726
- }
727
- if (_evGate.requires_user_confirmation.length > 0) {
728
- advisories.evidence_advisory = {
729
- level: "requires_confirmation",
730
- items: _evGate.requires_user_confirmation,
731
- diagnostic_code: _evGate.diagnostic_code,
732
- };
733
- }
734
- }
735
- else {
736
- // 低风险通用问答:标注为通用建议
737
- advisories.evidence_advisory = "通用建议,非项目事实;证据驱动门禁低风险放行";
738
- }
739
- } // end if (!evidenceGateAlreadyChecked)
740
- // 配置优先级警告
741
- if (expansion.config_resolution_reports && expansion.config_resolution_reports.length > 0) {
742
- const configWarnings = expansion.config_resolution_reports
743
- .filter(r => r.conflicts.length > 0)
744
- .map(r => r.conflicts.map(c => `${c.reason}`).join("; "));
745
- if (configWarnings.length > 0) {
746
- advisories.config_precedence_warnings = configWarnings;
747
- }
748
- }
749
- // 决策契约 advisory: 校验 expand 输出是否包含默认决策字段
750
- const decisionContract = (await lazyDecision()).validateDecisionOutput(expansion);
751
- if (!decisionContract.passed) {
752
- advisories.decision_contract_advisory = decisionContract.advisory;
753
- }
754
- // 统一持久化:load 一次,所有修改共享同一个 ctx,最后 save 一次
755
- // 避免 setExpansion/updateStatus/setPlanProposalGate 各自 load-save 互相覆盖
756
- try {
757
- const freshCtx = await taskContext.load(args.task_id);
758
- if (freshCtx) {
759
- // 1. 写入 expansion
760
- await taskContext.setExpansion(args.task_id, expansion, freshCtx);
761
- // 2. 写入 artifact(共享同一 ctx,不会重新 load)
762
- if (expansion.output_artifact_record) {
763
- await taskContext.setArtifact(args.task_id, expansion.output_artifact_record, freshCtx);
764
- }
765
- // 3. 状态转换(共享 ctx,校验通过后 save)
766
- const nextStatus = isBlocked ? "failed"
767
- : expansion.prompt.startsWith("## 澄清请求") ? "clarifying"
768
- : "executing";
769
- await taskContext.updateStatus(args.task_id, nextStatus, freshCtx);
770
- // 4. 设置 plan_proposal_gate(共享 ctx,最后一次 save)
771
- {
772
- const { evaluatePlanProposalGate, inferPlanGateTaskType } = await import("../../../engine/pipeline/plan_proposal_gate.js");
773
- const routeForGate = expansion?.workflow_trace?.route ?? expansionRoute ?? "code_change";
774
- const taskTypeForGate = inferPlanGateTaskType(ctx.intent);
775
- const isLightweight = routeForGate === "acceptance" || routeForGate === "review"
776
- || routeForGate === "direct_answer" || routeForGate === "analysis"
777
- || taskTypeForGate === "local_acceptance";
778
- if (isLightweight) {
779
- await taskContext.setPlanProposalGate(args.task_id, {
780
- passed: true,
781
- plan_gate_status: "passed",
782
- required_level: "brief_plan",
783
- reason_zh: "轻量路径自动通过",
784
- violations: [],
785
- evidence_refs: [],
786
- blocked_actions: [],
787
- }, freshCtx);
788
- }
789
- else {
790
- const gateResult = evaluatePlanProposalGate({
791
- task_id: args.task_id,
792
- task_type: taskTypeForGate,
793
- user_intent: ctx.intent,
794
- plan_level: "execution_plan",
795
- plan_summary_zh: ctx.intent.slice(0, 200),
796
- proposed_steps: [expansionRoute ?? "execute"],
797
- verification_plan: (expansion.acceptance?.automated ?? []).map((a) => a.description ?? String(a)),
798
- risks: [],
799
- evidence_refs: expansion.matched_knowledge ?? [],
800
- });
801
- await taskContext.setPlanProposalGate(args.task_id, gateResult, freshCtx);
802
- }
803
- }
804
- }
805
- }
806
- catch (persistErr) {
807
- try {
808
- await taskContext.updateStatus(args.task_id, "failed");
809
- }
810
- catch {
811
- // 状态转换非法,忽略
812
- }
813
- throw persistErr;
814
- }
815
- const expandPayload = Object.keys(advisories).length > 0
816
- ? { ...expansion, advisories }
817
- : expansion;
818
- return {
819
- result: expandPayload,
820
- };
821
- });
822
- }
823
- //# sourceMappingURL=expand_handler.js.map