soloforge 1.1.37 → 1.1.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1141) hide show
  1. package/CHANGELOG.md +149 -149
  2. package/README.md +77 -53
  3. package/dist/adapters/claude_code/claude_md.js +2 -2
  4. package/dist/adapters/claude_code/claude_md.js.map +1 -1
  5. package/dist/adapters/codex/codex_rules.js +1 -1
  6. package/dist/adapters/codex/codex_rules.js.map +1 -1
  7. package/dist/adapters/shared/workflow_template.js +1 -1
  8. package/dist/adapters/trae/trae_rules.js +1 -1
  9. package/dist/adapters/trae/trae_rules.js.map +1 -1
  10. package/dist/bin/commands/analyze.d.ts +7 -0
  11. package/dist/bin/commands/analyze.d.ts.map +1 -0
  12. package/dist/bin/commands/analyze.js +52 -0
  13. package/dist/bin/commands/analyze.js.map +1 -0
  14. package/dist/bin/commands/audit.d.ts.map +1 -1
  15. package/dist/bin/commands/audit.js +105 -84
  16. package/dist/bin/commands/audit.js.map +1 -1
  17. package/dist/bin/commands/check_bash.d.ts.map +1 -1
  18. package/dist/bin/commands/check_bash.js +48 -10
  19. package/dist/bin/commands/check_bash.js.map +1 -1
  20. package/dist/bin/commands/check_write.d.ts +9 -0
  21. package/dist/bin/commands/check_write.d.ts.map +1 -1
  22. package/dist/bin/commands/check_write.js +168 -11
  23. package/dist/bin/commands/check_write.js.map +1 -1
  24. package/dist/bin/commands/init.d.ts +2 -5
  25. package/dist/bin/commands/init.d.ts.map +1 -1
  26. package/dist/bin/commands/init.js +116 -137
  27. package/dist/bin/commands/init.js.map +1 -1
  28. package/dist/bin/commands/modify.d.ts +7 -0
  29. package/dist/bin/commands/modify.d.ts.map +1 -0
  30. package/dist/bin/commands/modify.js +74 -0
  31. package/dist/bin/commands/modify.js.map +1 -0
  32. package/dist/bin/commands/reasoning.d.ts +14 -0
  33. package/dist/bin/commands/reasoning.d.ts.map +1 -0
  34. package/dist/bin/commands/reasoning.js +158 -0
  35. package/dist/bin/commands/reasoning.js.map +1 -0
  36. package/dist/bin/commands/review.d.ts +7 -0
  37. package/dist/bin/commands/review.d.ts.map +1 -0
  38. package/dist/bin/commands/review.js +79 -0
  39. package/dist/bin/commands/review.js.map +1 -0
  40. package/dist/bin/commands/status.d.ts +6 -5
  41. package/dist/bin/commands/status.d.ts.map +1 -1
  42. package/dist/bin/commands/status.js +63 -120
  43. package/dist/bin/commands/status.js.map +1 -1
  44. package/dist/bin/commands/sync.d.ts +1 -1
  45. package/dist/bin/commands/sync.js +10 -10
  46. package/dist/bin/commands/sync.js.map +1 -1
  47. package/dist/bin/commands/validate.d.ts +4 -1
  48. package/dist/bin/commands/validate.d.ts.map +1 -1
  49. package/dist/bin/commands/validate.js +88 -99
  50. package/dist/bin/commands/validate.js.map +1 -1
  51. package/dist/bin/config_commands.d.ts +21 -20
  52. package/dist/bin/config_commands.d.ts.map +1 -1
  53. package/dist/bin/config_commands.js +209 -236
  54. package/dist/bin/config_commands.js.map +1 -1
  55. package/dist/bin/soloforge.js +60 -22
  56. package/dist/bin/soloforge.js.map +1 -1
  57. package/dist/engine/adapter_prompt_contract.d.ts +1 -1
  58. package/dist/engine/adapter_prompt_contract.d.ts.map +1 -1
  59. package/dist/engine/adapter_prompt_contract.js +1 -1
  60. package/dist/engine/adapter_prompt_contract.js.map +1 -1
  61. package/dist/engine/audit/audit_sampler.d.ts +1 -1
  62. package/dist/engine/audit/confidence_scorer.d.ts +16 -0
  63. package/dist/engine/audit/confidence_scorer.d.ts.map +1 -1
  64. package/dist/engine/audit/confidence_scorer.js +19 -0
  65. package/dist/engine/audit/confidence_scorer.js.map +1 -1
  66. package/dist/engine/audit/core_engineering_principles.d.ts +4 -4
  67. package/dist/engine/audit/core_engineering_principles.d.ts.map +1 -1
  68. package/dist/engine/audit/core_engineering_principles.js +18 -21
  69. package/dist/engine/audit/core_engineering_principles.js.map +1 -1
  70. package/dist/engine/audit/core_experience_principle.js +3 -3
  71. package/dist/engine/audit/core_experience_principle.js.map +1 -1
  72. package/dist/engine/audit/debt_reporter.d.ts +1 -1
  73. package/dist/engine/audit/debugger.d.ts +1 -1
  74. package/dist/engine/audit/delivery_readiness.d.ts +2 -2
  75. package/dist/engine/audit/delivery_readiness.js +2 -2
  76. package/dist/engine/audit/diagnostic_registry.js +4 -4
  77. package/dist/engine/audit/diagnostic_registry.js.map +1 -1
  78. package/dist/engine/audit/evolver.d.ts.map +1 -1
  79. package/dist/engine/audit/evolver.js +0 -2
  80. package/dist/engine/audit/evolver.js.map +1 -1
  81. package/dist/engine/audit/governance_report.d.ts +9 -8
  82. package/dist/engine/audit/governance_report.d.ts.map +1 -1
  83. package/dist/engine/audit/governance_report.js +17 -16
  84. package/dist/engine/audit/governance_report.js.map +1 -1
  85. package/dist/engine/audit/observability.d.ts +1 -1
  86. package/dist/engine/audit/observability.js +1 -1
  87. package/dist/engine/audit/risk_sampler.d.ts +1 -1
  88. package/dist/engine/audit/risk_sampler.js +1 -1
  89. package/dist/engine/audit/semantic_evidence.d.ts +1 -1
  90. package/dist/engine/audit/semantic_evidence.js +1 -1
  91. package/dist/engine/audit/test_generator.js +1 -1
  92. package/dist/engine/audit/test_quality.d.ts +1 -1
  93. package/dist/engine/audit/test_quality.js +1 -1
  94. package/dist/engine/change_coordinator.d.ts.map +1 -1
  95. package/dist/engine/change_coordinator.js +1 -4
  96. package/dist/engine/change_coordinator.js.map +1 -1
  97. package/dist/engine/config/conflicts.d.ts +39 -0
  98. package/dist/engine/config/conflicts.d.ts.map +1 -0
  99. package/dist/engine/config/conflicts.js +79 -0
  100. package/dist/engine/config/conflicts.js.map +1 -0
  101. package/dist/engine/config/detector/blueprint.d.ts +25 -0
  102. package/dist/engine/config/detector/blueprint.d.ts.map +1 -0
  103. package/dist/engine/config/detector/blueprint.js +47 -0
  104. package/dist/engine/config/detector/blueprint.js.map +1 -0
  105. package/dist/engine/config/detector/fingerprint.d.ts +67 -0
  106. package/dist/engine/config/detector/fingerprint.d.ts.map +1 -0
  107. package/dist/engine/config/detector/fingerprint.js +160 -0
  108. package/dist/engine/config/detector/fingerprint.js.map +1 -0
  109. package/dist/engine/config/detector/framework_map.d.ts +89 -0
  110. package/dist/engine/config/detector/framework_map.d.ts.map +1 -0
  111. package/dist/engine/config/detector/framework_map.js +406 -0
  112. package/dist/engine/config/detector/framework_map.js.map +1 -0
  113. package/dist/engine/config/detector/index.d.ts +12 -0
  114. package/dist/engine/config/detector/index.d.ts.map +1 -0
  115. package/dist/engine/config/detector/index.js +12 -0
  116. package/dist/engine/config/detector/index.js.map +1 -0
  117. package/dist/engine/config/detector/verify.d.ts +32 -0
  118. package/dist/engine/config/detector/verify.d.ts.map +1 -0
  119. package/dist/engine/config/detector/verify.js +107 -0
  120. package/dist/engine/config/detector/verify.js.map +1 -0
  121. package/dist/engine/config/intent.d.ts +26 -0
  122. package/dist/engine/config/intent.d.ts.map +1 -0
  123. package/dist/engine/config/intent.js +81 -0
  124. package/dist/engine/config/intent.js.map +1 -0
  125. package/dist/engine/config/intent_schema.d.ts +873 -0
  126. package/dist/engine/config/intent_schema.d.ts.map +1 -0
  127. package/dist/engine/config/intent_schema.js +98 -0
  128. package/dist/engine/config/intent_schema.js.map +1 -0
  129. package/dist/engine/config/regression_matrix.d.ts.map +1 -1
  130. package/dist/engine/config/regression_matrix.js +28 -49
  131. package/dist/engine/config/regression_matrix.js.map +1 -1
  132. package/dist/engine/config/resolver.d.ts +136 -0
  133. package/dist/engine/config/resolver.d.ts.map +1 -0
  134. package/dist/engine/config/resolver.js +251 -0
  135. package/dist/engine/config/resolver.js.map +1 -0
  136. package/dist/engine/context_engine/bootstrap.d.ts +12 -0
  137. package/dist/engine/context_engine/bootstrap.d.ts.map +1 -0
  138. package/dist/engine/context_engine/bootstrap.js +28 -0
  139. package/dist/engine/context_engine/bootstrap.js.map +1 -0
  140. package/dist/engine/context_engine/companion_injector.d.ts +49 -0
  141. package/dist/engine/context_engine/companion_injector.d.ts.map +1 -0
  142. package/dist/engine/context_engine/companion_injector.js +157 -0
  143. package/dist/engine/context_engine/companion_injector.js.map +1 -0
  144. package/dist/engine/context_engine/context_resolver.d.ts +46 -0
  145. package/dist/engine/context_engine/context_resolver.d.ts.map +1 -0
  146. package/dist/engine/context_engine/context_resolver.js +139 -0
  147. package/dist/engine/context_engine/context_resolver.js.map +1 -0
  148. package/dist/engine/context_engine/index.d.ts +25 -0
  149. package/dist/engine/context_engine/index.d.ts.map +1 -0
  150. package/dist/engine/context_engine/index.js +25 -0
  151. package/dist/engine/context_engine/index.js.map +1 -0
  152. package/dist/engine/context_engine/view_registry.d.ts +45 -0
  153. package/dist/engine/context_engine/view_registry.d.ts.map +1 -0
  154. package/dist/engine/context_engine/view_registry.js +36 -0
  155. package/dist/engine/context_engine/view_registry.js.map +1 -0
  156. package/dist/engine/context_engine/views/change_impact.d.ts +34 -0
  157. package/dist/engine/context_engine/views/change_impact.d.ts.map +1 -0
  158. package/dist/engine/context_engine/views/change_impact.js +288 -0
  159. package/dist/engine/context_engine/views/change_impact.js.map +1 -0
  160. package/dist/engine/context_engine/views/coverage_gap.d.ts +45 -0
  161. package/dist/engine/context_engine/views/coverage_gap.d.ts.map +1 -0
  162. package/dist/engine/context_engine/views/coverage_gap.js +238 -0
  163. package/dist/engine/context_engine/views/coverage_gap.js.map +1 -0
  164. package/dist/engine/context_engine/views/dependency_graph.d.ts +45 -0
  165. package/dist/engine/context_engine/views/dependency_graph.d.ts.map +1 -0
  166. package/dist/engine/context_engine/views/dependency_graph.js +358 -0
  167. package/dist/engine/context_engine/views/dependency_graph.js.map +1 -0
  168. package/dist/engine/context_engine/views/file_impact.d.ts +46 -0
  169. package/dist/engine/context_engine/views/file_impact.d.ts.map +1 -0
  170. package/dist/engine/context_engine/views/file_impact.js +181 -0
  171. package/dist/engine/context_engine/views/file_impact.js.map +1 -0
  172. package/dist/engine/context_engine/views/knowledge_ref.d.ts +37 -0
  173. package/dist/engine/context_engine/views/knowledge_ref.d.ts.map +1 -0
  174. package/dist/engine/context_engine/views/knowledge_ref.js +264 -0
  175. package/dist/engine/context_engine/views/knowledge_ref.js.map +1 -0
  176. package/dist/engine/context_engine/views/reference_trace.d.ts +49 -0
  177. package/dist/engine/context_engine/views/reference_trace.d.ts.map +1 -0
  178. package/dist/engine/context_engine/views/reference_trace.js +227 -0
  179. package/dist/engine/context_engine/views/reference_trace.js.map +1 -0
  180. package/dist/engine/contracts/architecture_decision_workshop.d.ts +1 -1
  181. package/dist/engine/contracts/architecture_decision_workshop.js +1 -1
  182. package/dist/engine/contracts/artifact_schema_registry.d.ts +2 -0
  183. package/dist/engine/contracts/artifact_schema_registry.d.ts.map +1 -1
  184. package/dist/engine/contracts/artifact_schema_registry.js +31 -1
  185. package/dist/engine/contracts/artifact_schema_registry.js.map +1 -1
  186. package/dist/engine/contracts/capability_registry.d.ts.map +1 -1
  187. package/dist/engine/contracts/capability_registry.js +6 -33
  188. package/dist/engine/contracts/capability_registry.js.map +1 -1
  189. package/dist/engine/contracts/code_maintainability_observability_contract.js +2 -2
  190. package/dist/engine/contracts/code_maintainability_observability_contract.js.map +1 -1
  191. package/dist/engine/contracts/command_execution_contract.d.ts +1 -1
  192. package/dist/engine/contracts/command_execution_contract.js +3 -3
  193. package/dist/engine/contracts/command_execution_contract.js.map +1 -1
  194. package/dist/engine/contracts/contract_guard.js +8 -0
  195. package/dist/engine/contracts/contract_guard.js.map +1 -1
  196. package/dist/engine/contracts/contract_registry/builtin_contracts_core.d.ts.map +1 -1
  197. package/dist/engine/contracts/contract_registry/builtin_contracts_core.js +13 -31
  198. package/dist/engine/contracts/contract_registry/builtin_contracts_core.js.map +1 -1
  199. package/dist/engine/contracts/control_plane_contract.d.ts.map +1 -1
  200. package/dist/engine/contracts/control_plane_contract.js +27 -13
  201. package/dist/engine/contracts/control_plane_contract.js.map +1 -1
  202. package/dist/engine/contracts/decision_contract.d.ts +1 -1
  203. package/dist/engine/contracts/decision_contract.js +1 -1
  204. package/dist/engine/contracts/decision_workshop.d.ts +1 -3
  205. package/dist/engine/contracts/decision_workshop.d.ts.map +1 -1
  206. package/dist/engine/contracts/decision_workshop.js.map +1 -1
  207. package/dist/engine/contracts/design_lifecycle_contract.d.ts +2 -2
  208. package/dist/engine/contracts/design_lifecycle_contract.d.ts.map +1 -1
  209. package/dist/engine/contracts/design_lifecycle_contract.js +26 -20
  210. package/dist/engine/contracts/design_lifecycle_contract.js.map +1 -1
  211. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit.js +11 -11
  212. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit.js.map +1 -1
  213. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit_tail.d.ts.map +1 -1
  214. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit_tail.js +2 -39
  215. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit_tail.js.map +1 -1
  216. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_core.d.ts.map +1 -1
  217. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_core.js +68 -28
  218. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_core.js.map +1 -1
  219. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_extension.js +11 -11
  220. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_extension.js.map +1 -1
  221. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_governance.js +10 -10
  222. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_governance.js.map +1 -1
  223. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_infra.d.ts.map +1 -1
  224. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_infra.js +8 -84
  225. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_infra.js.map +1 -1
  226. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_platform.js +18 -18
  227. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_platform.js.map +1 -1
  228. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_release.js +12 -12
  229. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_release.js.map +1 -1
  230. package/dist/engine/contracts/dual_layer_mechanism_registry/shared.js +3 -3
  231. package/dist/engine/contracts/dual_layer_mechanism_registry/shared.js.map +1 -1
  232. package/dist/engine/contracts/dual_layer_mechanism_registry/validation.d.ts.map +1 -1
  233. package/dist/engine/contracts/dual_layer_mechanism_registry/validation.js +4 -3
  234. package/dist/engine/contracts/dual_layer_mechanism_registry/validation.js.map +1 -1
  235. package/dist/engine/contracts/enforcement_guard.d.ts +1 -1
  236. package/dist/engine/contracts/enforcement_guard.js +3 -3
  237. package/dist/engine/contracts/enforcement_guard.js.map +1 -1
  238. package/dist/engine/contracts/error_path_verifier.js +2 -2
  239. package/dist/engine/contracts/error_path_verifier.js.map +1 -1
  240. package/dist/engine/contracts/evolution_regression_gate.d.ts +1 -1
  241. package/dist/engine/contracts/evolution_regression_gate.js +1 -1
  242. package/dist/engine/contracts/first_principles.d.ts +47 -0
  243. package/dist/engine/contracts/first_principles.d.ts.map +1 -1
  244. package/dist/engine/contracts/first_principles.js +56 -0
  245. package/dist/engine/contracts/first_principles.js.map +1 -1
  246. package/dist/engine/contracts/instruction_contract.js +1 -1
  247. package/dist/engine/contracts/instruction_contract.js.map +1 -1
  248. package/dist/engine/contracts/lifecycle_knowledge_contract.d.ts +2 -2
  249. package/dist/engine/contracts/lifecycle_knowledge_contract.d.ts.map +1 -1
  250. package/dist/engine/contracts/lifecycle_knowledge_contract.js +10 -10
  251. package/dist/engine/contracts/lifecycle_knowledge_contract.js.map +1 -1
  252. package/dist/engine/contracts/mechanism_contract_registry/contracts-audit.d.ts +1 -1
  253. package/dist/engine/contracts/mechanism_contract_registry/contracts-audit.d.ts.map +1 -1
  254. package/dist/engine/contracts/mechanism_contract_registry/contracts-audit.js +20 -36
  255. package/dist/engine/contracts/mechanism_contract_registry/contracts-audit.js.map +1 -1
  256. package/dist/engine/contracts/mechanism_contract_registry/contracts-governance.js +30 -30
  257. package/dist/engine/contracts/mechanism_contract_registry/contracts-governance.js.map +1 -1
  258. package/dist/engine/contracts/mechanism_contract_registry/contracts-pipeline.d.ts +3 -2
  259. package/dist/engine/contracts/mechanism_contract_registry/contracts-pipeline.d.ts.map +1 -1
  260. package/dist/engine/contracts/mechanism_contract_registry/contracts-pipeline.js +75 -52
  261. package/dist/engine/contracts/mechanism_contract_registry/contracts-pipeline.js.map +1 -1
  262. package/dist/engine/contracts/mechanism_contract_registry/contracts-platform.d.ts +2 -2
  263. package/dist/engine/contracts/mechanism_contract_registry/contracts-platform.d.ts.map +1 -1
  264. package/dist/engine/contracts/mechanism_contract_registry/contracts-platform.js +23 -61
  265. package/dist/engine/contracts/mechanism_contract_registry/contracts-platform.js.map +1 -1
  266. package/dist/engine/contracts/mechanism_health_check.d.ts +1 -1
  267. package/dist/engine/contracts/mechanism_health_check.js +1 -1
  268. package/dist/engine/contracts/omission_scanner.d.ts +1 -1
  269. package/dist/engine/contracts/omission_scanner.js +1 -1
  270. package/dist/engine/contracts/platform_context.d.ts +1 -1
  271. package/dist/engine/contracts/platform_context.js +1 -1
  272. package/dist/engine/contracts/project_knowledge_contract.d.ts +3 -2
  273. package/dist/engine/contracts/project_knowledge_contract.d.ts.map +1 -1
  274. package/dist/engine/contracts/project_knowledge_contract.js +8 -7
  275. package/dist/engine/contracts/project_knowledge_contract.js.map +1 -1
  276. package/dist/engine/contracts/slice_fix_loop.d.ts +86 -0
  277. package/dist/engine/contracts/slice_fix_loop.d.ts.map +1 -0
  278. package/dist/engine/contracts/slice_fix_loop.js +98 -0
  279. package/dist/engine/contracts/slice_fix_loop.js.map +1 -0
  280. package/dist/engine/contracts/state_machine_contracts.d.ts +17 -0
  281. package/dist/engine/contracts/state_machine_contracts.d.ts.map +1 -0
  282. package/dist/engine/contracts/state_machine_contracts.js +97 -0
  283. package/dist/engine/contracts/state_machine_contracts.js.map +1 -0
  284. package/dist/engine/contracts/technology_decision.d.ts +18 -0
  285. package/dist/engine/contracts/technology_decision.d.ts.map +1 -1
  286. package/dist/engine/contracts/technology_decision.js +38 -0
  287. package/dist/engine/contracts/technology_decision.js.map +1 -1
  288. package/dist/engine/contracts/tool_invocation_contract_registry.d.ts +2 -3
  289. package/dist/engine/contracts/tool_invocation_contract_registry.d.ts.map +1 -1
  290. package/dist/engine/contracts/tool_invocation_contract_registry.js +205 -186
  291. package/dist/engine/contracts/tool_invocation_contract_registry.js.map +1 -1
  292. package/dist/engine/contracts/user_feedback_contract.d.ts +1 -1
  293. package/dist/engine/contracts/user_feedback_contract.d.ts.map +1 -1
  294. package/dist/engine/contracts/user_feedback_contract.js +6 -9
  295. package/dist/engine/contracts/user_feedback_contract.js.map +1 -1
  296. package/dist/engine/contracts/user_promise.js +2 -2
  297. package/dist/engine/contracts/user_promise.js.map +1 -1
  298. package/dist/engine/contracts/workflow_template_pack.d.ts +1 -1
  299. package/dist/engine/contracts/workflow_template_pack.js +5 -5
  300. package/dist/engine/contracts/workflow_template_pack.js.map +1 -1
  301. package/dist/engine/core/debug_log.d.ts +1 -1
  302. package/dist/engine/core/debug_log.js +1 -1
  303. package/dist/engine/core/errors.d.ts +1 -1
  304. package/dist/engine/core/errors.js +1 -1
  305. package/dist/engine/core/fail_closed.d.ts +39 -0
  306. package/dist/engine/core/fail_closed.d.ts.map +1 -0
  307. package/dist/engine/core/fail_closed.js +38 -0
  308. package/dist/engine/core/fail_closed.js.map +1 -0
  309. package/dist/engine/core/index.d.ts +3 -1
  310. package/dist/engine/core/index.d.ts.map +1 -1
  311. package/dist/engine/core/index.js +3 -1
  312. package/dist/engine/core/index.js.map +1 -1
  313. package/dist/engine/core/paths.d.ts +6 -2
  314. package/dist/engine/core/paths.d.ts.map +1 -1
  315. package/dist/engine/core/paths.js +8 -2
  316. package/dist/engine/core/paths.js.map +1 -1
  317. package/dist/engine/dependency_scanner.js +1 -1
  318. package/dist/engine/dependency_scanner.js.map +1 -1
  319. package/dist/engine/exploration.js +1 -1
  320. package/dist/engine/exploration.js.map +1 -1
  321. package/dist/engine/feasibility_checker.js +1 -1
  322. package/dist/engine/impact_analyzer.js +1 -1
  323. package/dist/engine/impact_analyzer.js.map +1 -1
  324. package/dist/engine/knowledge/knowledge_asset_audit.d.ts.map +1 -1
  325. package/dist/engine/knowledge/knowledge_asset_audit.js +3 -2
  326. package/dist/engine/knowledge/knowledge_asset_audit.js.map +1 -1
  327. package/dist/engine/knowledge/knowledge_asset_consumer.d.ts +28 -21
  328. package/dist/engine/knowledge/knowledge_asset_consumer.d.ts.map +1 -1
  329. package/dist/engine/knowledge/knowledge_asset_consumer.js +32 -27
  330. package/dist/engine/knowledge/knowledge_asset_consumer.js.map +1 -1
  331. package/dist/engine/knowledge/knowledge_asset_migration.js +1 -1
  332. package/dist/engine/knowledge/knowledge_asset_migration.js.map +1 -1
  333. package/dist/engine/knowledge/knowledge_asset_schema.d.ts +8 -3
  334. package/dist/engine/knowledge/knowledge_asset_schema.d.ts.map +1 -1
  335. package/dist/engine/knowledge/knowledge_asset_schema.js +25 -8
  336. package/dist/engine/knowledge/knowledge_asset_schema.js.map +1 -1
  337. package/dist/engine/knowledge/knowledge_consumption_snapshot.d.ts +3 -3
  338. package/dist/engine/knowledge/knowledge_consumption_snapshot.d.ts.map +1 -1
  339. package/dist/engine/knowledge/knowledge_consumption_snapshot.js +5 -5
  340. package/dist/engine/knowledge/knowledge_consumption_snapshot.js.map +1 -1
  341. package/dist/engine/knowledge/knowledge_health.d.ts.map +1 -1
  342. package/dist/engine/knowledge/knowledge_health.js +6 -4
  343. package/dist/engine/knowledge/knowledge_health.js.map +1 -1
  344. package/dist/engine/knowledge/knowledge_injection_boundary.d.ts +37 -5
  345. package/dist/engine/knowledge/knowledge_injection_boundary.d.ts.map +1 -1
  346. package/dist/engine/knowledge/knowledge_injection_boundary.js +107 -64
  347. package/dist/engine/knowledge/knowledge_injection_boundary.js.map +1 -1
  348. package/dist/engine/knowledge/knowledge_scenario_registry.js +1 -1
  349. package/dist/engine/knowledge/knowledge_scenario_registry.js.map +1 -1
  350. package/dist/engine/knowledge/knowledge_writer.js +3 -3
  351. package/dist/engine/knowledge/knowledge_writer.js.map +1 -1
  352. package/dist/engine/knowledge/language_policy.d.ts +2 -2
  353. package/dist/engine/knowledge/language_policy.js +2 -2
  354. package/dist/engine/onboarding.d.ts +1 -1
  355. package/dist/engine/onboarding.js +2 -2
  356. package/dist/engine/onboarding.js.map +1 -1
  357. package/dist/engine/pipeline/artifact_aliases.d.ts +19 -0
  358. package/dist/engine/pipeline/artifact_aliases.d.ts.map +1 -0
  359. package/dist/engine/pipeline/artifact_aliases.js +39 -0
  360. package/dist/engine/pipeline/artifact_aliases.js.map +1 -0
  361. package/dist/engine/pipeline/input_material_extractor.d.ts +1 -1
  362. package/dist/engine/pipeline/input_material_extractor.d.ts.map +1 -1
  363. package/dist/engine/pipeline/intent_expander/helpers.d.ts +15 -29
  364. package/dist/engine/pipeline/intent_expander/helpers.d.ts.map +1 -1
  365. package/dist/engine/pipeline/intent_expander/helpers.js +15 -158
  366. package/dist/engine/pipeline/intent_expander/helpers.js.map +1 -1
  367. package/dist/engine/pipeline/intent_expander/index.d.ts +1 -2
  368. package/dist/engine/pipeline/intent_expander/index.d.ts.map +1 -1
  369. package/dist/engine/pipeline/intent_expander/index.js +1 -3
  370. package/dist/engine/pipeline/intent_expander/index.js.map +1 -1
  371. package/dist/engine/pipeline/intent_expander/knowledge.d.ts +4 -13
  372. package/dist/engine/pipeline/intent_expander/knowledge.d.ts.map +1 -1
  373. package/dist/engine/pipeline/intent_expander/knowledge.js +7 -169
  374. package/dist/engine/pipeline/intent_expander/knowledge.js.map +1 -1
  375. package/dist/engine/pipeline/intent_expander/knowledge_resolution.d.ts +9 -7
  376. package/dist/engine/pipeline/intent_expander/knowledge_resolution.d.ts.map +1 -1
  377. package/dist/engine/pipeline/intent_expander/knowledge_resolution.js +85 -30
  378. package/dist/engine/pipeline/intent_expander/knowledge_resolution.js.map +1 -1
  379. package/dist/engine/pipeline/intent_expander/privacy_gates.d.ts +13 -100
  380. package/dist/engine/pipeline/intent_expander/privacy_gates.d.ts.map +1 -1
  381. package/dist/engine/pipeline/intent_expander/privacy_gates.js +18 -268
  382. package/dist/engine/pipeline/intent_expander/privacy_gates.js.map +1 -1
  383. package/dist/engine/pipeline/intent_expander/scope_acceptance.d.ts +11 -5
  384. package/dist/engine/pipeline/intent_expander/scope_acceptance.d.ts.map +1 -1
  385. package/dist/engine/pipeline/intent_expander/scope_acceptance.js +18 -32
  386. package/dist/engine/pipeline/intent_expander/scope_acceptance.js.map +1 -1
  387. package/dist/engine/pipeline/intent_expander/templates.d.ts +1 -1
  388. package/dist/engine/pipeline/intent_expander/templates.d.ts.map +1 -1
  389. package/dist/engine/pipeline/intent_expander/types.d.ts +1 -3
  390. package/dist/engine/pipeline/intent_expander/types.d.ts.map +1 -1
  391. package/dist/engine/pipeline/intent_expander.d.ts +5 -3
  392. package/dist/engine/pipeline/intent_expander.d.ts.map +1 -1
  393. package/dist/engine/pipeline/intent_expander.js +4 -3
  394. package/dist/engine/pipeline/intent_expander.js.map +1 -1
  395. package/dist/engine/pipeline/job_manager.d.ts +1 -1
  396. package/dist/engine/pipeline/job_manager.js +1 -1
  397. package/dist/engine/pipeline/prompt_template_resolver.d.ts +13 -0
  398. package/dist/engine/pipeline/prompt_template_resolver.d.ts.map +1 -0
  399. package/dist/engine/pipeline/prompt_template_resolver.js +25 -0
  400. package/dist/engine/pipeline/prompt_template_resolver.js.map +1 -0
  401. package/dist/engine/pipeline/rollback_router.d.ts +1 -1
  402. package/dist/engine/pipeline/rollback_router.d.ts.map +1 -1
  403. package/dist/engine/pipeline/scope_lease.d.ts.map +1 -1
  404. package/dist/engine/pipeline/scope_lease.js +1 -3
  405. package/dist/engine/pipeline/scope_lease.js.map +1 -1
  406. package/dist/engine/pipeline/scope_resolver.d.ts +9 -2
  407. package/dist/engine/pipeline/scope_resolver.d.ts.map +1 -1
  408. package/dist/engine/pipeline/scope_resolver.js +30 -16
  409. package/dist/engine/pipeline/scope_resolver.js.map +1 -1
  410. package/dist/engine/pipeline/slice_executor.d.ts +5 -1
  411. package/dist/engine/pipeline/slice_executor.d.ts.map +1 -1
  412. package/dist/engine/pipeline/slice_executor.js +4 -1
  413. package/dist/engine/pipeline/slice_executor.js.map +1 -1
  414. package/dist/engine/pipeline/state_machine/audit_logger.d.ts +42 -0
  415. package/dist/engine/pipeline/state_machine/audit_logger.d.ts.map +1 -0
  416. package/dist/engine/pipeline/state_machine/audit_logger.js +71 -0
  417. package/dist/engine/pipeline/state_machine/audit_logger.js.map +1 -0
  418. package/dist/engine/pipeline/state_machine/capability_safety_valve.d.ts +51 -0
  419. package/dist/engine/pipeline/state_machine/capability_safety_valve.d.ts.map +1 -0
  420. package/dist/engine/pipeline/state_machine/capability_safety_valve.js +131 -0
  421. package/dist/engine/pipeline/state_machine/capability_safety_valve.js.map +1 -0
  422. package/dist/engine/pipeline/state_machine/certainty_gate.d.ts +92 -0
  423. package/dist/engine/pipeline/state_machine/certainty_gate.d.ts.map +1 -0
  424. package/dist/engine/pipeline/state_machine/certainty_gate.js +391 -0
  425. package/dist/engine/pipeline/state_machine/certainty_gate.js.map +1 -0
  426. package/dist/engine/pipeline/state_machine/command_state_verifier.d.ts +50 -0
  427. package/dist/engine/pipeline/state_machine/command_state_verifier.d.ts.map +1 -0
  428. package/dist/engine/pipeline/state_machine/command_state_verifier.js +160 -0
  429. package/dist/engine/pipeline/state_machine/command_state_verifier.js.map +1 -0
  430. package/dist/engine/pipeline/state_machine/hook_classifier.d.ts +71 -0
  431. package/dist/engine/pipeline/state_machine/hook_classifier.d.ts.map +1 -0
  432. package/dist/engine/pipeline/state_machine/hook_classifier.js +146 -0
  433. package/dist/engine/pipeline/state_machine/hook_classifier.js.map +1 -0
  434. package/dist/engine/pipeline/state_machine/human_uncertainty_detector.d.ts +33 -0
  435. package/dist/engine/pipeline/state_machine/human_uncertainty_detector.d.ts.map +1 -0
  436. package/dist/engine/pipeline/state_machine/human_uncertainty_detector.js +72 -0
  437. package/dist/engine/pipeline/state_machine/human_uncertainty_detector.js.map +1 -0
  438. package/dist/engine/pipeline/state_machine/knowledge_stage_query.d.ts +21 -0
  439. package/dist/engine/pipeline/state_machine/knowledge_stage_query.d.ts.map +1 -0
  440. package/dist/engine/pipeline/state_machine/knowledge_stage_query.js +33 -0
  441. package/dist/engine/pipeline/state_machine/knowledge_stage_query.js.map +1 -0
  442. package/dist/engine/pipeline/state_machine/pipeline_state_machine.d.ts +158 -0
  443. package/dist/engine/pipeline/state_machine/pipeline_state_machine.d.ts.map +1 -0
  444. package/dist/engine/pipeline/state_machine/pipeline_state_machine.js +1197 -0
  445. package/dist/engine/pipeline/state_machine/pipeline_state_machine.js.map +1 -0
  446. package/dist/engine/pipeline/state_machine/risk_pattern_scanner.d.ts +34 -0
  447. package/dist/engine/pipeline/state_machine/risk_pattern_scanner.d.ts.map +1 -0
  448. package/dist/engine/pipeline/state_machine/risk_pattern_scanner.js +152 -0
  449. package/dist/engine/pipeline/state_machine/risk_pattern_scanner.js.map +1 -0
  450. package/dist/engine/pipeline/state_machine/route_usage_stats.d.ts +28 -0
  451. package/dist/engine/pipeline/state_machine/route_usage_stats.d.ts.map +1 -0
  452. package/dist/engine/pipeline/state_machine/route_usage_stats.js +76 -0
  453. package/dist/engine/pipeline/state_machine/route_usage_stats.js.map +1 -0
  454. package/dist/engine/pipeline/state_machine/sf_command_parser.d.ts +22 -0
  455. package/dist/engine/pipeline/state_machine/sf_command_parser.d.ts.map +1 -0
  456. package/dist/engine/pipeline/state_machine/sf_command_parser.js +171 -0
  457. package/dist/engine/pipeline/state_machine/sf_command_parser.js.map +1 -0
  458. package/dist/engine/pipeline/state_machine/stage_command_registry.d.ts +38 -0
  459. package/dist/engine/pipeline/state_machine/stage_command_registry.d.ts.map +1 -0
  460. package/dist/engine/pipeline/state_machine/stage_command_registry.js +218 -0
  461. package/dist/engine/pipeline/state_machine/stage_command_registry.js.map +1 -0
  462. package/dist/engine/pipeline/state_machine/stage_executor.d.ts +37 -0
  463. package/dist/engine/pipeline/state_machine/stage_executor.d.ts.map +1 -0
  464. package/dist/engine/pipeline/state_machine/stage_executor.js +67 -0
  465. package/dist/engine/pipeline/state_machine/stage_executor.js.map +1 -0
  466. package/dist/engine/pipeline/state_machine/state_migrator.d.ts +21 -0
  467. package/dist/engine/pipeline/state_machine/state_migrator.d.ts.map +1 -0
  468. package/dist/engine/pipeline/state_machine/state_migrator.js +130 -0
  469. package/dist/engine/pipeline/state_machine/state_migrator.js.map +1 -0
  470. package/dist/engine/pipeline/state_machine/state_self_diagnostic.d.ts +48 -0
  471. package/dist/engine/pipeline/state_machine/state_self_diagnostic.d.ts.map +1 -0
  472. package/dist/engine/pipeline/state_machine/state_self_diagnostic.js +566 -0
  473. package/dist/engine/pipeline/state_machine/state_self_diagnostic.js.map +1 -0
  474. package/dist/engine/pipeline/state_machine/static_route_table.d.ts +36 -0
  475. package/dist/engine/pipeline/state_machine/static_route_table.d.ts.map +1 -0
  476. package/dist/engine/pipeline/state_machine/static_route_table.js +112 -0
  477. package/dist/engine/pipeline/state_machine/static_route_table.js.map +1 -0
  478. package/dist/engine/pipeline/state_machine/strong_confirmation.d.ts +45 -0
  479. package/dist/engine/pipeline/state_machine/strong_confirmation.d.ts.map +1 -0
  480. package/dist/engine/pipeline/state_machine/strong_confirmation.js +57 -0
  481. package/dist/engine/pipeline/state_machine/strong_confirmation.js.map +1 -0
  482. package/dist/engine/pipeline/state_machine/uncertainty_bridge.d.ts +55 -0
  483. package/dist/engine/pipeline/state_machine/uncertainty_bridge.d.ts.map +1 -0
  484. package/dist/engine/pipeline/state_machine/uncertainty_bridge.js +48 -0
  485. package/dist/engine/pipeline/state_machine/uncertainty_bridge.js.map +1 -0
  486. package/dist/engine/pipeline/task_context/manager.d.ts +3 -3
  487. package/dist/engine/pipeline/task_context/manager.d.ts.map +1 -1
  488. package/dist/engine/pipeline/task_context/manager.js +59 -9
  489. package/dist/engine/pipeline/task_context/manager.js.map +1 -1
  490. package/dist/engine/pipeline/task_context/manager_setters.js +1 -1
  491. package/dist/engine/pipeline/task_context/manager_setters.js.map +1 -1
  492. package/dist/engine/pipeline/task_context/status_transitions.d.ts +7 -2
  493. package/dist/engine/pipeline/task_context/status_transitions.d.ts.map +1 -1
  494. package/dist/engine/pipeline/task_context/status_transitions.js +9 -14
  495. package/dist/engine/pipeline/task_context/status_transitions.js.map +1 -1
  496. package/dist/engine/pipeline/task_planner.d.ts.map +1 -1
  497. package/dist/engine/pipeline/task_planner.js +15 -9
  498. package/dist/engine/pipeline/task_planner.js.map +1 -1
  499. package/dist/engine/pipeline/task_stage_detector.d.ts +2 -0
  500. package/dist/engine/pipeline/task_stage_detector.d.ts.map +1 -1
  501. package/dist/engine/pipeline/task_stage_detector.js +23 -5
  502. package/dist/engine/pipeline/task_stage_detector.js.map +1 -1
  503. package/dist/engine/pipeline/workspace_lease.d.ts +1 -1
  504. package/dist/engine/pipeline/workspace_lease.js +1 -1
  505. package/dist/engine/pipeline/workspace_resumer.js +2 -2
  506. package/dist/engine/pipeline/workspace_resumer.js.map +1 -1
  507. package/dist/engine/release/foundation_scenario_registry.js +47 -47
  508. package/dist/engine/release/foundation_scenario_registry.js.map +1 -1
  509. package/dist/engine/release/foundation_scenario_runners.d.ts +3 -3
  510. package/dist/engine/release/foundation_scenario_runners.d.ts.map +1 -1
  511. package/dist/engine/release/foundation_scenario_runners.js +27 -485
  512. package/dist/engine/release/foundation_scenario_runners.js.map +1 -1
  513. package/dist/engine/release/gate_checks/checkControlPlaneTrust.d.ts.map +1 -1
  514. package/dist/engine/release/gate_checks/checkControlPlaneTrust.js +24 -21
  515. package/dist/engine/release/gate_checks/checkControlPlaneTrust.js.map +1 -1
  516. package/dist/engine/release/gate_checks/checkCriticalProblemConsumption.d.ts.map +1 -1
  517. package/dist/engine/release/gate_checks/checkCriticalProblemConsumption.js +8 -9
  518. package/dist/engine/release/gate_checks/checkCriticalProblemConsumption.js.map +1 -1
  519. package/dist/engine/release/gate_checks/checkKnowledgeAssetSchemaP0.js +1 -1
  520. package/dist/engine/release/gate_checks/checkKnowledgeAssetSchemaP0.js.map +1 -1
  521. package/dist/engine/release/gate_checks/checkMainlineConsumption.js +3 -3
  522. package/dist/engine/release/gate_checks/checkMainlineConsumption.js.map +1 -1
  523. package/dist/engine/release/gate_checks/checkTemplateKnowledgeHygiene.d.ts.map +1 -1
  524. package/dist/engine/release/gate_checks/checkTemplateKnowledgeHygiene.js +8 -56
  525. package/dist/engine/release/gate_checks/checkTemplateKnowledgeHygiene.js.map +1 -1
  526. package/dist/engine/release/gate_checks/checkWorkflowNavigation.d.ts.map +1 -1
  527. package/dist/engine/release/gate_checks/checkWorkflowNavigation.js +27 -60
  528. package/dist/engine/release/gate_checks/checkWorkflowNavigation.js.map +1 -1
  529. package/dist/engine/release/release_gate_scenario_registry.js +9 -9
  530. package/dist/engine/release/release_gate_scenario_registry.js.map +1 -1
  531. package/dist/engine/release/release_issue_scenario_registry/scenarios_architecture_workshop.js +44 -44
  532. package/dist/engine/release/release_issue_scenario_registry/scenarios_architecture_workshop.js.map +1 -1
  533. package/dist/engine/release/release_issue_scenario_registry/scenarios_code_observability.js +20 -20
  534. package/dist/engine/release/release_issue_scenario_registry/scenarios_code_observability.js.map +1 -1
  535. package/dist/engine/release/release_issue_scenario_registry/scenarios_decision_workshop.js +66 -66
  536. package/dist/engine/release/release_issue_scenario_registry/scenarios_decision_workshop.js.map +1 -1
  537. package/dist/engine/release/release_issue_scenario_registry/scenarios_design_pack.d.ts.map +1 -1
  538. package/dist/engine/release/release_issue_scenario_registry/scenarios_design_pack.js +44 -48
  539. package/dist/engine/release/release_issue_scenario_registry/scenarios_design_pack.js.map +1 -1
  540. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_contract.d.ts.map +1 -1
  541. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_contract.js +21 -26
  542. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_contract.js.map +1 -1
  543. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_visibility.js +20 -20
  544. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_visibility.js.map +1 -1
  545. package/dist/engine/release/release_issue_scenario_registry/workshop_helpers.d.ts +1 -1
  546. package/dist/engine/release/release_issue_scenario_registry/workshop_helpers.d.ts.map +1 -1
  547. package/dist/engine/release/release_issue_scenario_registry/workshop_helpers.js +14 -3
  548. package/dist/engine/release/release_issue_scenario_registry/workshop_helpers.js.map +1 -1
  549. package/dist/engine/release/types.d.ts +2 -2
  550. package/dist/engine/release/types.d.ts.map +1 -1
  551. package/dist/engine/release/verifier.js +7 -7
  552. package/dist/engine/release/verifier.js.map +1 -1
  553. package/dist/engine/retention_policy.js +1 -1
  554. package/dist/engine/retention_policy.js.map +1 -1
  555. package/dist/engine/state_fact_classifier.d.ts +3 -3
  556. package/dist/engine/state_fact_classifier.js +4 -4
  557. package/dist/engine/state_fact_classifier.js.map +1 -1
  558. package/dist/engine/templates/asset_manifest.d.ts.map +1 -1
  559. package/dist/engine/templates/asset_manifest.js +18 -16
  560. package/dist/engine/templates/asset_manifest.js.map +1 -1
  561. package/dist/engine/templates/consumable_asset_registry/builtin_assets_core.js +13 -13
  562. package/dist/engine/templates/consumable_asset_registry/builtin_assets_core.js.map +1 -1
  563. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_core.d.ts +1 -1
  564. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_core.d.ts.map +1 -1
  565. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_core.js +36 -32
  566. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_core.js.map +1 -1
  567. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext.js +10 -10
  568. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext.js.map +1 -1
  569. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext2.js +18 -18
  570. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext2.js.map +1 -1
  571. package/dist/engine/templates/consumable_asset_registry/types.js +4 -4
  572. package/dist/engine/templates/consumable_asset_registry/types.js.map +1 -1
  573. package/dist/engine/templates/consumption_trace_store.d.ts +3 -3
  574. package/dist/engine/templates/consumption_trace_store.d.ts.map +1 -1
  575. package/dist/engine/templates/consumption_trace_store.js +4 -4
  576. package/dist/engine/templates/consumption_trace_store.js.map +1 -1
  577. package/dist/engine/templates/explicit_asset_registry/adapters.js +4 -4
  578. package/dist/engine/templates/explicit_asset_registry/adapters.js.map +1 -1
  579. package/dist/engine/templates/explicit_asset_registry/artifacts_existing_system.js +10 -10
  580. package/dist/engine/templates/explicit_asset_registry/artifacts_existing_system.js.map +1 -1
  581. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part1.js +25 -25
  582. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part1.js.map +1 -1
  583. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part2.js +5 -5
  584. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part2.js.map +1 -1
  585. package/dist/engine/templates/explicit_asset_registry/checklists.js +7 -7
  586. package/dist/engine/templates/explicit_asset_registry/contributing.js +1 -1
  587. package/dist/engine/templates/explicit_asset_registry/domain.js +9 -9
  588. package/dist/engine/templates/explicit_asset_registry/gates.d.ts.map +1 -1
  589. package/dist/engine/templates/explicit_asset_registry/gates.js +70 -20
  590. package/dist/engine/templates/explicit_asset_registry/gates.js.map +1 -1
  591. package/dist/engine/templates/explicit_asset_registry/internal_patterns.js +27 -27
  592. package/dist/engine/templates/explicit_asset_registry/internal_rules_part1.d.ts.map +1 -1
  593. package/dist/engine/templates/explicit_asset_registry/internal_rules_part1.js +42 -26
  594. package/dist/engine/templates/explicit_asset_registry/internal_rules_part1.js.map +1 -1
  595. package/dist/engine/templates/explicit_asset_registry/internal_rules_part2.js +20 -20
  596. package/dist/engine/templates/explicit_asset_registry/internal_rules_part2.js.map +1 -1
  597. package/dist/engine/templates/explicit_asset_registry/patterns_part1.js +25 -25
  598. package/dist/engine/templates/explicit_asset_registry/patterns_part2.js +25 -25
  599. package/dist/engine/templates/explicit_asset_registry/patterns_part3.js +2 -2
  600. package/dist/engine/templates/explicit_asset_registry/patterns_part3.js.map +1 -1
  601. package/dist/engine/templates/explicit_asset_registry/procedures_part1.d.ts.map +1 -1
  602. package/dist/engine/templates/explicit_asset_registry/procedures_part1.js +58 -26
  603. package/dist/engine/templates/explicit_asset_registry/procedures_part1.js.map +1 -1
  604. package/dist/engine/templates/explicit_asset_registry/procedures_part2.d.ts.map +1 -1
  605. package/dist/engine/templates/explicit_asset_registry/procedures_part2.js +46 -13
  606. package/dist/engine/templates/explicit_asset_registry/procedures_part2.js.map +1 -1
  607. package/dist/engine/templates/explicit_asset_registry/profiles.js +3 -3
  608. package/dist/engine/templates/explicit_asset_registry/profiles.js.map +1 -1
  609. package/dist/engine/templates/explicit_asset_registry/rules_pipeline.d.ts.map +1 -1
  610. package/dist/engine/templates/explicit_asset_registry/rules_pipeline.js +25 -9
  611. package/dist/engine/templates/explicit_asset_registry/rules_pipeline.js.map +1 -1
  612. package/dist/engine/templates/explicit_asset_registry/rules_shared.d.ts.map +1 -1
  613. package/dist/engine/templates/explicit_asset_registry/rules_shared.js +304 -16
  614. package/dist/engine/templates/explicit_asset_registry/rules_shared.js.map +1 -1
  615. package/dist/engine/templates/explicit_asset_registry/scaffolds.js +22 -22
  616. package/dist/engine/templates/explicit_asset_registry/scaffolds.js.map +1 -1
  617. package/dist/engine/templates/explicit_asset_registry/types.d.ts +1 -1
  618. package/dist/engine/templates/observed_consumption.d.ts +2 -2
  619. package/dist/engine/templates/observed_consumption.d.ts.map +1 -1
  620. package/dist/engine/templates/observed_consumption.js +5 -22
  621. package/dist/engine/templates/observed_consumption.js.map +1 -1
  622. package/dist/engine/templates/scaffolder.js +8 -8
  623. package/dist/engine/templates/scaffolder.js.map +1 -1
  624. package/dist/engine/templates/standard_asset_contract.d.ts +5 -5
  625. package/dist/engine/templates/standard_asset_contract.d.ts.map +1 -1
  626. package/dist/engine/templates/standard_asset_contract.js +18 -18
  627. package/dist/engine/templates/standard_asset_contract.js.map +1 -1
  628. package/dist/engine/templates/standard_asset_coverage.js +12 -12
  629. package/dist/engine/templates/standard_asset_coverage.js.map +1 -1
  630. package/dist/engine/templates/template_asset_contract_registry.d.ts +2 -2
  631. package/dist/engine/templates/template_asset_contract_registry.js +23 -23
  632. package/dist/engine/templates/template_asset_contract_registry.js.map +1 -1
  633. package/dist/engine/templates/template_asset_visibility.d.ts +1 -1
  634. package/dist/engine/templates/template_asset_visibility.js +4 -4
  635. package/dist/engine/templates/template_asset_visibility.js.map +1 -1
  636. package/dist/engine/templates/template_init_sync.js +11 -11
  637. package/dist/engine/templates/template_init_sync.js.map +1 -1
  638. package/dist/engine/templates/template_manifest_io.js +6 -6
  639. package/dist/engine/templates/template_manifest_io.js.map +1 -1
  640. package/dist/engine/templates/template_mechanism_auditor.d.ts.map +1 -1
  641. package/dist/engine/templates/template_mechanism_auditor.js +6 -5
  642. package/dist/engine/templates/template_mechanism_auditor.js.map +1 -1
  643. package/dist/engine/templates/workflow_rule_generator.d.ts +1 -1
  644. package/dist/engine/templates/workflow_rule_generator.d.ts.map +1 -1
  645. package/dist/engine/templates/workflow_rule_generator.js +10 -12
  646. package/dist/engine/templates/workflow_rule_generator.js.map +1 -1
  647. package/dist/engine/workflow/index.d.ts +2 -2
  648. package/dist/engine/workflow/index.d.ts.map +1 -1
  649. package/dist/engine/workflow/index.js +1 -1
  650. package/dist/engine/workflow/index.js.map +1 -1
  651. package/dist/engine/workflow/next_action_planner.d.ts.map +1 -1
  652. package/dist/engine/workflow/next_action_planner.js +32 -36
  653. package/dist/engine/workflow/next_action_planner.js.map +1 -1
  654. package/dist/engine/workflow/project_stage_detector.d.ts.map +1 -1
  655. package/dist/engine/workflow/project_stage_detector.js +6 -4
  656. package/dist/engine/workflow/project_stage_detector.js.map +1 -1
  657. package/dist/engine/workflow/workflow_contract_registry.d.ts +49 -31
  658. package/dist/engine/workflow/workflow_contract_registry.d.ts.map +1 -1
  659. package/dist/engine/workflow/workflow_contract_registry.js +81 -666
  660. package/dist/engine/workflow/workflow_contract_registry.js.map +1 -1
  661. package/dist/git/git_deps.d.ts +1 -0
  662. package/dist/git/git_deps.d.ts.map +1 -1
  663. package/dist/git/operations.d.ts +1 -0
  664. package/dist/git/operations.d.ts.map +1 -1
  665. package/dist/git/operations.js +2 -0
  666. package/dist/git/operations.js.map +1 -1
  667. package/dist/index.d.ts +1 -1
  668. package/dist/index.js +10 -1
  669. package/dist/index.js.map +1 -1
  670. package/dist/knowledge/conflict_detector.d.ts.map +1 -1
  671. package/dist/knowledge/conflict_detector.js +13 -2
  672. package/dist/knowledge/conflict_detector.js.map +1 -1
  673. package/dist/knowledge/health_checker.d.ts.map +1 -1
  674. package/dist/knowledge/health_checker.js +5 -3
  675. package/dist/knowledge/health_checker.js.map +1 -1
  676. package/dist/knowledge/index_manager.d.ts +16 -2
  677. package/dist/knowledge/index_manager.d.ts.map +1 -1
  678. package/dist/knowledge/index_manager.js +124 -55
  679. package/dist/knowledge/index_manager.js.map +1 -1
  680. package/dist/knowledge/loader.d.ts +8 -4
  681. package/dist/knowledge/loader.d.ts.map +1 -1
  682. package/dist/knowledge/loader.js +189 -34
  683. package/dist/knowledge/loader.js.map +1 -1
  684. package/dist/knowledge/writer.js +2 -2
  685. package/dist/knowledge/writer.js.map +1 -1
  686. package/dist/server/tools/cep_assessment.d.ts +1 -1
  687. package/dist/server/tools/cep_assessment.d.ts.map +1 -1
  688. package/dist/server/tools/cep_assessment.js +15 -6
  689. package/dist/server/tools/cep_assessment.js.map +1 -1
  690. package/dist/server/tools/gate_checks.js +3 -3
  691. package/dist/server/tools/gate_checks.js.map +1 -1
  692. package/dist/server/tools/index.d.ts.map +1 -1
  693. package/dist/server/tools/index.js +11 -30
  694. package/dist/server/tools/index.js.map +1 -1
  695. package/dist/server/tools/lazy_loaders.d.ts +1 -4
  696. package/dist/server/tools/lazy_loaders.d.ts.map +1 -1
  697. package/dist/server/tools/lazy_loaders.js +2 -4
  698. package/dist/server/tools/lazy_loaders.js.map +1 -1
  699. package/dist/server/tools/middleware.d.ts +2 -0
  700. package/dist/server/tools/middleware.d.ts.map +1 -1
  701. package/dist/server/tools/middleware.js +110 -132
  702. package/dist/server/tools/middleware.js.map +1 -1
  703. package/dist/server/tools/schemas.d.ts +2 -2
  704. package/dist/server/tools/schemas.js +5 -5
  705. package/dist/server/tools/schemas.js.map +1 -1
  706. package/dist/server/tools/tool_groups/admin.d.ts.map +1 -1
  707. package/dist/server/tools/tool_groups/admin.js +16 -122
  708. package/dist/server/tools/tool_groups/admin.js.map +1 -1
  709. package/dist/server/tools/tool_groups/auxiliary.d.ts.map +1 -1
  710. package/dist/server/tools/tool_groups/auxiliary.js +4 -21
  711. package/dist/server/tools/tool_groups/auxiliary.js.map +1 -1
  712. package/dist/server/tools/tool_groups/knowledge.js +2 -2
  713. package/dist/server/tools/tool_groups/knowledge.js.map +1 -1
  714. package/dist/server/tools/tool_groups/product_operations.d.ts +9 -0
  715. package/dist/server/tools/tool_groups/product_operations.d.ts.map +1 -0
  716. package/dist/server/tools/tool_groups/product_operations.js +143 -0
  717. package/dist/server/tools/tool_groups/product_operations.js.map +1 -0
  718. package/dist/server/tools/tool_groups/scaffold_accept_deliver.d.ts +0 -1
  719. package/dist/server/tools/tool_groups/scaffold_accept_deliver.d.ts.map +1 -1
  720. package/dist/server/tools/tool_groups/scaffold_accept_deliver.js +5 -427
  721. package/dist/server/tools/tool_groups/scaffold_accept_deliver.js.map +1 -1
  722. package/dist/server/tools/tool_groups/state_machine.d.ts +13 -0
  723. package/dist/server/tools/tool_groups/state_machine.d.ts.map +1 -0
  724. package/dist/server/tools/tool_groups/state_machine.js +960 -0
  725. package/dist/server/tools/tool_groups/state_machine.js.map +1 -0
  726. package/dist/server/tools/tool_names.d.ts +23 -19
  727. package/dist/server/tools/tool_names.d.ts.map +1 -1
  728. package/dist/server/tools/tool_names.js +29 -24
  729. package/dist/server/tools/tool_names.js.map +1 -1
  730. package/dist/types/dual_layer.d.ts +3 -3
  731. package/dist/types/index.d.ts +1 -0
  732. package/dist/types/index.d.ts.map +1 -1
  733. package/dist/types/index.js +1 -0
  734. package/dist/types/index.js.map +1 -1
  735. package/dist/types/knowledge.d.ts +2 -4
  736. package/dist/types/knowledge.d.ts.map +1 -1
  737. package/dist/types/knowledge.js.map +1 -1
  738. package/dist/types/pipeline.d.ts +20 -9
  739. package/dist/types/pipeline.d.ts.map +1 -1
  740. package/dist/types/pipeline.js +4 -0
  741. package/dist/types/pipeline.js.map +1 -1
  742. package/dist/types/state_machine.d.ts +359 -0
  743. package/dist/types/state_machine.d.ts.map +1 -0
  744. package/dist/types/state_machine.js +47 -0
  745. package/dist/types/state_machine.js.map +1 -0
  746. package/dist/types/task.d.ts +11 -10
  747. package/dist/types/task.d.ts.map +1 -1
  748. package/package.json +14 -14
  749. package/templates/artifacts/existing-system//344/270/200/351/224/256/345/274/200/345/205/263/351/205/215/347/275/256/346/250/241/347/211/210.json +23 -2
  750. package/templates/artifacts/existing-system//345/216/206/345/217/262/346/225/260/346/215/256/346/270/205/346/264/227/350/204/232/346/234/254/346/250/241/347/211/210.md +11 -7
  751. package/templates/artifacts/existing-system//345/216/206/345/217/262/351/201/227/347/225/231/351/233/267/345/214/272/346/270/205/345/215/225/346/250/241/347/211/210.md +23 -23
  752. package/templates/artifacts/existing-system//345/220/221/345/220/216/345/205/274/345/256/271/346/200/247/345/220/210/350/247/204/346/212/245/345/221/212/346/250/241/347/211/210.md +25 -16
  753. package/templates/artifacts/existing-system//345/242/236/351/207/217/350/276/271/347/225/214/347/225/214/345/256/232/346/226/207/346/241/243/346/250/241/347/211/210.md +21 -16
  754. package/templates/artifacts/existing-system//346/224/271/351/200/240/345/275/261/345/223/215/350/214/203/345/233/264/350/257/204/344/274/260/346/250/241/347/211/210.md +18 -8
  755. package/templates/artifacts/existing-system//346/225/260/346/215/256/350/241/200/347/274/230/345/233/276/346/250/241/347/211/210.md +15 -8
  756. package/templates/artifacts/existing-system//346/226/260/350/200/201/351/200/273/350/276/221/346/257/224/345/257/271/346/227/245/345/277/227/346/250/241/347/211/210.md +9 -8
  757. package/templates/artifacts/existing-system//347/264/247/346/200/245/345/233/236/346/273/232/346/211/213/345/206/214/346/250/241/347/211/210.md +48 -15
  758. package/templates/artifacts/existing-system//351/232/224/347/246/273/351/200/202/351/205/215/345/231/250/346/226/271/346/241/210/346/250/241/347/211/210.md +13 -9
  759. package/templates/artifacts/shared/ADR/346/250/241/347/211/210.md +17 -7
  760. package/templates/artifacts/shared/API/346/216/245/345/217/243/350/247/204/346/240/274/346/226/207/346/241/243/346/250/241/347/211/210.md +31 -72
  761. package/templates/artifacts/shared/Bug/345/210/206/346/236/220/346/250/241/347/211/210.md +2 -12
  762. package/templates/artifacts/shared/OOD/350/256/276/350/256/241/346/221/230/350/246/201/346/250/241/347/211/210.md +2 -11
  763. package/templates/artifacts/shared/POC/347/273/223/350/256/272/346/250/241/347/211/210.md +2 -12
  764. package/templates/artifacts/shared//344/273/243/347/240/201/345/256/241/346/237/245/346/212/245/345/221/212/346/250/241/347/211/210.md +47 -12
  765. package/templates/artifacts/shared//344/273/243/347/240/201/346/263/250/351/207/212/344/270/216/346/227/245/345/277/227/351/252/214/346/224/266/346/250/241/347/211/210.md +2 -9
  766. package/templates/artifacts/shared//345/210/207/347/211/207/350/256/241/345/210/222/346/250/241/347/211/210.md +122 -20
  767. package/templates/artifacts/shared//345/211/215/347/253/257/351/241/265/351/235/242/351/252/214/346/224/266/346/270/205/345/215/225.md +2 -16
  768. package/templates/artifacts/shared//345/216/237/345/236/213/350/257/264/346/230/216/346/250/241/347/211/210.md +115 -227
  769. package/templates/artifacts/shared//345/220/216/347/253/257API/351/252/214/346/224/266/346/270/205/345/215/225.md +2 -15
  770. package/templates/artifacts/shared//345/220/216/347/253/257/345/256/236/347/216/260/351/252/214/346/224/266/346/270/205/345/215/225.md +11 -11
  771. package/templates/artifacts/shared//345/256/211/345/205/250/345/256/241/350/256/241/346/250/241/347/211/210.md +8 -35
  772. package/templates/artifacts/shared//345/256/241/346/237/245/346/221/230/350/246/201.md +10 -17
  773. package/templates/artifacts/shared//346/200/247/350/203/275/345/210/206/346/236/220/346/250/241/347/211/210.md +2 -12
  774. package/templates/artifacts/shared//346/212/200/346/234/257/351/200/211/345/236/213/351/252/214/346/224/266/346/270/205/345/215/225.md +2 -15
  775. package/templates/artifacts/shared//346/216/245/345/217/243/345/257/271/346/216/245/346/226/271/346/241/210/346/250/241/347/211/210.md +54 -22
  776. package/templates/artifacts/shared//346/225/205/351/232/234/345/244/215/347/233/230/346/250/241/347/211/210.md +2 -13
  777. package/templates/artifacts/shared//346/225/260/346/215/256/345/272/223/345/217/230/346/233/264/346/226/271/346/241/210/346/250/241/347/211/210.md +43 -33
  778. package/templates/artifacts/shared//346/225/260/346/215/256/345/272/223/345/217/230/346/233/264/351/252/214/346/224/266/346/270/205/345/215/225.md +2 -17
  779. package/templates/artifacts/shared//346/225/260/346/215/256/345/272/223/350/256/276/350/256/241/346/226/207/346/241/243/346/250/241/347/211/210.md +121 -44
  780. package/templates/artifacts/shared//346/236/266/346/236/204/350/256/276/350/256/241/346/250/241/347/211/210.md +110 -78
  781. package/templates/artifacts/shared//346/265/213/350/257/225/350/256/241/345/210/222/346/250/241/347/211/210.md +27 -20
  782. package/templates/artifacts/shared//350/256/276/350/256/241/344/270/200/350/207/264/346/200/247/351/252/214/346/224/266/346/212/245/345/221/212/346/250/241/347/211/210.md +2 -25
  783. package/templates/artifacts/shared//350/257/246/347/273/206/350/256/276/350/256/241/346/250/241/347/211/210.md +83 -32
  784. package/templates/artifacts/shared//350/277/201/347/247/273/350/257/204/344/274/260/346/250/241/347/211/210.md +15 -14
  785. package/templates/artifacts/shared//351/200/232/347/224/250/350/264/250/351/207/217/351/252/214/346/224/266/346/270/205/345/215/225.md +157 -38
  786. package/templates/artifacts/shared//351/207/215/346/236/204/346/226/271/346/241/210/346/250/241/347/211/210.md +2 -12
  787. package/templates/artifacts/shared//351/234/200/346/261/202/345/210/206/346/236/220/346/250/241/347/211/210.md +74 -17
  788. package/templates/artifacts/shared//351/234/200/346/261/202/345/216/237/345/236/213/350/256/276/350/256/241/345/256/236/347/216/260/350/277/275/350/270/252/347/237/251/351/230/265/346/250/241/347/211/210.md +38 -47
  789. package/templates/checklists//344/270/273/351/223/276/350/267/257/346/216/245/345/205/245/351/252/214/346/224/266/346/270/205/345/215/225.md +1 -8
  790. package/templates/checklists//344/274/232/350/257/235/346/201/242/345/244/215.md +1 -12
  791. package/templates/checklists//345/267/245/344/275/234/346/265/201/351/252/214/346/224/266/346/270/205/345/215/225.md +1 -8
  792. package/templates/checklists//346/240/270/345/277/203/345/267/245/347/250/213/346/211/247/350/241/214/351/252/214/346/224/266/346/270/205/345/215/225.md +1 -8
  793. package/templates/checklists//347/237/245/350/257/206/346/263/250/345/205/245/351/252/214/346/224/266/346/270/205/345/215/225.md +1 -8
  794. package/templates/checklists//351/232/220/347/247/201/345/256/241/346/237/245/346/270/205/345/215/225.md +1 -8
  795. package/templates/checklists//351/252/214/350/257/201/351/252/214/346/224/266/346/270/205/345/215/225.md +1 -8
  796. package/templates/domain//345/244/232/347/247/237/346/210/267.md +1 -15
  797. package/templates/domain//345/256/241/350/256/241/346/227/245/345/277/227.md +1 -14
  798. package/templates/domain//345/257/274/345/205/245/345/257/274/345/207/272/350/247/204/345/210/231.md +1 -16
  799. package/templates/domain//345/267/245/344/275/234/346/265/201/345/274/225/346/223/216.md +1 -19
  800. package/templates/domain//346/212/245/350/241/250/347/273/237/350/256/241.md +1 -17
  801. package/templates/domain//346/224/257/344/273/230/350/247/204/345/210/231.md +1 -18
  802. package/templates/domain//346/225/260/346/215/256/346/235/203/351/231/220.md +1 -15
  803. package/templates/domain//351/200/232/347/224/250/346/234/272/346/242/260/346/235/241/346/254/276.md +1 -17
  804. package/templates/domain//351/200/232/347/237/245/350/247/204/345/210/231.md +1 -17
  805. package/templates/gates/existing-system/gate-/346/236/266/346/236/204/350/256/276/350/256/241.yaml +13 -14
  806. package/templates/gates/existing-system/gate-/347/216/260/346/234/211/347/263/273/347/273/237/345/210/206/346/236/220.yaml +48 -0
  807. package/templates/gates/existing-system/gate-/347/274/226/347/240/201/344/270/216/345/215/225/345/205/203/346/265/213/350/257/225.yaml +41 -8
  808. package/templates/gates/existing-system/gate-/350/257/225/350/277/220/350/241/214.yaml +30 -12
  809. package/templates/gates/existing-system/gate-/350/257/246/347/273/206/350/256/276/350/256/241.yaml +25 -15
  810. package/templates/gates/shared/gate-/344/272/244/344/273/230.yaml +26 -8
  811. package/templates/gates/shared/gate-/344/273/243/347/240/201/345/256/241/346/237/245.yaml +47 -8
  812. package/templates/gates/shared/gate-/344/273/273/345/212/241/350/247/204/345/210/222.yaml +131 -5
  813. package/templates/gates/shared/gate-/345/210/207/347/211/207/345/256/241/346/237/245.yaml +50 -0
  814. package/templates/gates/shared/gate-/345/210/207/347/211/207/346/211/247/350/241/214.yaml +51 -0
  815. package/templates/gates/shared/gate-/345/217/221/345/270/203/345/220/216/350/247/202/345/257/237.yaml +40 -8
  816. package/templates/gates/shared/gate-/345/256/211/345/205/250/345/256/241/350/256/241.yaml +77 -0
  817. package/templates/gates/shared/gate-/346/236/266/346/236/204/350/256/276/350/256/241.yaml +136 -9
  818. package/templates/gates/shared/gate-/347/274/226/347/240/201/344/270/216/345/215/225/345/205/203/346/265/213/350/257/225.yaml +30 -4
  819. package/templates/gates/shared/gate-/347/274/226/347/240/201/345/207/206/345/244/207.yaml +40 -4
  820. package/templates/gates/shared/gate-/347/274/226/347/240/201/345/256/236/347/216/260.yaml +42 -4
  821. package/templates/gates/shared/gate-/347/274/226/347/240/201/351/252/214/350/257/201.yaml +33 -4
  822. package/templates/gates/shared/gate-/350/201/224/350/260/203/351/252/214/350/257/201.yaml +47 -8
  823. package/templates/gates/shared/gate-/350/257/246/347/273/206/350/256/276/350/256/241.yaml +118 -9
  824. package/templates/gates/shared/gate-/351/234/200/346/261/202/345/210/206/346/236/220.yaml +154 -8
  825. package/templates/internal/patterns/Diff/345/275/222/345/261/236/350/277/275/350/270/252.md +1 -12
  826. package/templates/internal/patterns/Hook/345/261/202/344/272/247/347/211/251/347/273/223/346/236/204/346/240/241/351/252/214.md +1 -7
  827. package/templates/internal/patterns/Java/350/264/250/351/207/217/351/227/250/347/246/201.md +1 -13
  828. package/templates/internal/patterns/LLM/351/242/204/347/256/227/347/275/221/345/205/263.md +1 -12
  829. package/templates/internal/patterns//344/272/247/347/211/251Schema/346/263/250/345/206/214/344/270/255/345/277/203.md +1 -7
  830. package/templates/internal/patterns//344/273/273/345/212/241/344/270/212/344/270/213/346/226/207/347/224/237/345/221/275/345/221/250/346/234/237.md +1 -12
  831. package/templates/internal/patterns//344/273/273/345/212/241/347/256/241/347/220/206/345/231/250.md +1 -13
  832. package/templates/internal/patterns//344/275/234/347/224/250/345/237/237/344/270/216/345/257/206/351/222/245/346/213/246/346/210/252.md +1 -12
  833. package/templates/internal/patterns//344/275/234/347/224/250/345/237/237/347/247/237/347/272/246.md +1 -13
  834. package/templates/internal/patterns//345/206/262/347/252/201/351/227/250/347/246/201.md +1 -12
  835. package/templates/internal/patterns//345/206/263/347/255/226/347/275/221/345/205/263.md +1 -14
  836. package/templates/internal/patterns//345/210/206/345/234/272/346/231/257/350/277/207/347/250/213/350/247/204/345/210/231.md +1 -7
  837. package/templates/internal/patterns//345/217/230/345/274/202/345/256/241/350/256/241.md +1 -13
  838. package/templates/internal/patterns//345/233/236/345/275/222/347/237/251/351/230/265.md +1 -12
  839. package/templates/internal/patterns//345/267/245/344/275/234/345/214/272/344/272/222/346/226/245/351/224/201.md +1 -12
  840. package/templates/internal/patterns//345/267/245/344/275/234/345/214/272/345/224/244/351/206/222.md +1 -12
  841. package/templates/internal/patterns//345/271/266/345/217/221/351/224/201.md +1 -14
  842. package/templates/internal/patterns//345/274/200/345/217/221/350/200/205/345/256/252/346/263/225.md +2 -15
  843. package/templates/internal/patterns//346/225/217/346/204/237/344/277/241/346/201/257/346/211/253/346/217/217.md +1 -12
  844. package/templates/internal/patterns//346/250/241/347/211/210Frontmatter/350/247/243/346/236/220.md +1 -7
  845. package/templates/internal/patterns//346/262/273/347/220/206/350/277/220/350/241/214/346/227/266/345/276/252/347/216/257.md +1 -13
  846. package/templates/internal/patterns//346/265/201/345/274/217/345/277/203/350/267/263.md +2 -14
  847. package/templates/internal/patterns//347/237/245/350/257/206/344/270/273/346/235/203.md +1 -13
  848. package/templates/internal/patterns//350/257/255/344/271/211/350/257/201/346/215/256.md +1 -12
  849. package/templates/internal/patterns//350/277/220/350/241/214/345/256/211/345/205/250/345/214/205.md +1 -13
  850. package/templates/internal/patterns//351/252/214/350/257/201/345/221/275/344/273/244/347/224/237/346/210/220.md +4 -14
  851. package/templates/internal/rules/OOD/344/270/216SOLID/350/256/276/350/256/241/350/247/204/345/210/231.md +0 -13
  852. package/templates/internal/rules//344/272/247/347/211/251/345/245/221/347/272/246/350/247/204/345/210/231.md +2 -9
  853. package/templates/internal/rules//344/273/243/347/240/201/346/263/250/351/207/212/344/270/216/346/227/245/345/277/227/345/245/221/347/272/246/350/247/204/345/210/231.md +3 -29
  854. package/templates/internal/rules//344/273/273/345/212/241/344/270/212/344/270/213/346/226/207/347/224/237/345/221/275/345/221/250/346/234/237/350/247/204/345/210/231.md +0 -10
  855. package/templates/internal/rules//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213/345/245/221/347/272/246/350/247/204/345/210/231.md +0 -13
  856. package/templates/internal/rules//345/221/275/344/273/244/346/211/247/350/241/214/350/247/204/345/210/231.md +1 -8
  857. package/templates/internal/rules//345/221/275/344/273/244/350/267/257/347/224/261/350/247/204/345/210/231.md +30 -0
  858. package/templates/internal/rules//345/267/245/344/275/234/346/265/201/345/245/221/347/272/246/350/247/204/345/210/231.md +1 -8
  859. package/templates/internal/rules//345/267/245/344/275/234/346/265/201/345/257/274/350/210/252/345/245/221/347/272/246/350/247/204/345/210/231.md +15 -26
  860. package/templates/internal/rules//345/267/245/344/275/234/346/265/201/346/250/241/347/211/210/345/214/205/350/247/204/345/210/231.md +0 -8
  861. package/templates/internal/rules//345/267/245/345/205/267/350/260/203/347/224/250/350/247/204/345/210/231.md +1 -8
  862. package/templates/internal/rules//346/204/217/345/233/276/350/267/257/347/224/261/350/247/204/345/210/231.md +5 -10
  863. package/templates/internal/rules//346/211/247/350/241/214/345/256/210/345/215/253/350/257/204/344/274/260/350/247/204/345/210/231.md +4 -11
  864. package/templates/internal/rules//346/211/251/345/261/225/347/224/237/345/221/275/345/221/250/346/234/237/350/247/204/345/210/231.md +0 -8
  865. package/templates/internal/rules//346/212/200/346/234/257/345/206/263/347/255/226/344/270/273/346/235/203/350/247/204/345/210/231.md +0 -11
  866. package/templates/internal/rules//346/225/217/346/204/237/344/277/241/346/201/257/345/244/204/347/220/206/350/247/204/345/210/231.md +4 -19
  867. package/templates/internal/rules//346/226/275/345/267/245/346/214/207/344/273/244/345/245/221/347/272/246/350/247/204/345/210/231.md +0 -9
  868. package/templates/internal/rules//346/227/245/345/277/227/346/262/273/347/220/206/350/247/204/345/210/231.md +0 -12
  869. package/templates/internal/rules//346/234/272/345/210/266/350/207/252/346/262/273/347/220/206/350/247/204/345/210/231.md +0 -12
  870. package/templates/internal/rules//346/236/266/346/236/204/345/206/263/347/255/226/347/240/224/350/256/250/350/247/204/345/210/231.md +4 -8
  871. package/templates/internal/rules//346/240/207/345/207/206/350/265/204/344/272/247/350/246/206/347/233/226/350/247/204/345/210/231.md +2 -16
  872. package/templates/internal/rules//346/240/270/345/277/203/344/275/223/351/252/214/345/216/237/345/210/231.md +1 -9
  873. package/templates/internal/rules//346/240/270/345/277/203/345/267/245/347/250/213/346/211/247/350/241/214/345/216/237/345/210/231.md +2 -9
  874. package/templates/internal/rules//346/250/241/347/211/210Frontmatter/350/247/204/350/214/203.md +85 -65
  875. package/templates/internal/rules//346/250/241/347/211/210/350/265/204/344/272/247/345/217/257/350/247/201/346/200/247/350/247/204/345/210/231.md +0 -15
  876. package/templates/internal/rules//346/263/250/345/206/214/350/241/250/345/237/272/347/241/200/350/256/276/346/226/275/350/247/204/345/210/231.md +1 -8
  877. package/templates/internal/rules//346/274/224/350/277/233/345/233/236/345/275/222/351/227/250/346/216/247/350/247/204/345/210/231.md +0 -14
  878. package/templates/internal/rules//347/224/250/346/210/267/345/217/215/351/246/210/345/245/221/347/272/246/350/247/204/345/210/231.md +4 -21
  879. package/templates/internal/rules//347/237/245/350/257/206/346/262/273/347/220/206/350/247/204/345/210/231.md +0 -12
  880. package/templates/internal/rules//347/237/245/350/257/206/346/263/250/345/205/245/350/276/271/347/225/214/350/247/204/345/210/231.md +1 -8
  881. package/templates/internal/rules//347/237/245/350/257/206/350/265/204/344/272/247/346/262/273/347/220/206/350/247/204/345/210/231.md +2 -11
  882. package/templates/internal/rules//347/254/254/344/270/200/346/200/247/345/216/237/347/220/206/346/216/250/347/220/206/350/247/204/345/210/231.md +0 -11
  883. package/templates/internal/rules//347/273/206/350/212/202/347/272/252/345/276/213/350/247/204/345/210/231.md +0 -11
  884. package/templates/internal/rules//350/204/221/346/232/264/344/270/216/346/226/271/346/241/210/346/216/242/347/264/242/350/247/204/345/210/231.md +0 -11
  885. package/templates/internal/rules//350/256/241/345/210/222/345/211/215/347/275/256/351/227/250/350/247/204/345/210/231.md +1 -16
  886. package/templates/internal/rules//350/256/276/350/256/241/344/272/247/347/211/251/345/214/205/350/247/204/345/210/231.md +6 -10
  887. package/templates/internal/rules//350/257/201/346/215/256/351/251/261/345/212/250/344/270/216/345/217/215/345/271/273/350/247/211/350/247/204/345/210/231.md +0 -12
  888. package/templates/internal/rules//350/267/250/345/271/263/345/217/260/350/267/257/345/276/204/345/256/211/345/205/250/350/247/204/345/210/231.md +0 -8
  889. package/templates/internal/rules//350/276/223/345/205/245/346/235/220/346/226/231/345/245/221/347/272/246/350/247/204/345/210/231.md +1 -8
  890. package/templates/internal/rules//351/200/232/347/224/250/345/206/263/347/255/226/347/240/224/350/256/250/350/247/204/345/210/231.md +0 -19
  891. package/templates/internal/rules//351/205/215/347/275/256/344/274/230/345/205/210/347/272/247/350/247/204/345/210/231.md +38 -35
  892. package/templates/internal/rules//351/205/215/347/275/256/350/220/275/347/233/230/350/276/271/347/225/214/350/247/204/345/210/231.md +5 -16
  893. package/templates/internal/rules//351/230/262/345/255/244/345/262/233/345/256/236/347/216/260/350/247/204/345/210/231.md +1 -8
  894. package/templates/internal/rules//351/233/266/351/205/215/347/275/256/345/210/235/345/247/213/345/214/226/350/247/204/345/210/231.md +31 -35
  895. package/templates/internal/rules//351/252/214/346/224/266/346/250/241/347/211/210/350/276/223/345/207/272/345/245/221/347/272/246/350/247/204/345/210/231.md +2 -16
  896. package/templates/internal/rules//351/252/214/350/257/201/345/245/221/347/272/246/350/247/204/345/210/231.md +1 -8
  897. package/templates/patterns/API/350/256/276/350/256/241/350/247/204/350/214/203.md +1 -17
  898. package/templates/patterns/Docker/351/203/250/347/275/262/350/247/204/350/214/203.md +1 -15
  899. package/templates/patterns/Git/346/223/215/344/275/234/350/247/204/350/214/203.md +1 -19
  900. package/templates/patterns/N/345/212/2401/346/237/245/350/257/242/350/247/204/350/214/203.md +1 -18
  901. package/templates/patterns/React/345/210/227/350/241/250/350/241/250/346/240/274/350/247/204/350/214/203.md +1 -17
  902. package/templates/patterns/React/346/216/245/345/217/243/351/233/206/346/210/220/350/247/204/350/214/203.md +1 -18
  903. package/templates/patterns/React/347/212/266/346/200/201/347/256/241/347/220/206/350/247/204/350/214/203.md +1 -18
  904. package/templates/patterns/React/347/273/204/344/273/266/350/247/204/350/214/203.md +1 -17
  905. package/templates/patterns/React/350/241/250/345/215/225/350/247/204/350/214/203.md +1 -17
  906. package/templates/patterns/React/350/267/257/347/224/261/350/247/204/350/214/203.md +1 -18
  907. package/templates/patterns/SOLID/350/256/276/350/256/241/350/247/204/350/214/203.md +1 -10
  908. package/templates/patterns/Schema/345/205/274/345/256/271/350/247/204/350/214/203.md +1 -17
  909. package/templates/patterns/Vue/347/212/266/346/200/201/347/256/241/347/220/206/350/247/204/350/214/203.md +1 -16
  910. package/templates/patterns/Vue/347/273/204/344/273/266/350/247/204/350/214/203.md +1 -20
  911. package/templates/patterns/Vue/350/267/257/347/224/261/350/247/204/350/214/203.md +1 -15
  912. package/templates/patterns//344/272/213/344/273/266/351/251/261/345/212/250/350/247/204/350/214/203.md +1 -19
  913. package/templates/patterns//344/272/213/345/212/241/346/250/241/345/274/217/350/247/204/350/214/203.md +1 -18
  914. package/templates/patterns//344/274/230/351/233/205/345/201/234/346/234/272/350/247/204/350/214/203.md +1 -18
  915. package/templates/patterns//345/205/250/346/240/210/346/265/201/347/250/213/344/277/256/345/244/215.md +1 -16
  916. package/templates/patterns//345/210/206/351/241/265/346/237/245/350/257/242/350/247/204/350/214/203.md +1 -21
  917. package/templates/patterns//345/211/215/347/253/257/346/200/247/350/203/275/350/247/204/350/214/203.md +1 -19
  918. package/templates/patterns//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213/350/247/204/350/214/203.md +1 -10
  919. package/templates/patterns//345/221/275/345/220/215/350/247/204/350/214/203.md +1 -16
  920. package/templates/patterns//345/233/275/351/231/205/345/214/226/350/247/204/350/214/203.md +1 -18
  921. package/templates/patterns//345/242/236/345/210/240/346/224/271/346/237/245/350/247/204/350/214/203.md +1 -18
  922. package/templates/patterns//345/244/226/351/203/250/344/276/235/350/265/226/350/247/204/350/214/203.md +1 -18
  923. package/templates/patterns//345/245/221/347/272/246/345/205/274/345/256/271/350/247/204/350/214/203.md +1 -15
  924. package/templates/patterns//345/256/232/346/227/266/344/273/273/345/212/241/350/247/204/350/214/203.md +1 -19
  925. package/templates/patterns//345/256/236/346/227/266/346/216/250/351/200/201/350/247/204/350/214/203.md +1 -17
  926. package/templates/patterns//345/267/245/347/250/213/347/272/252/345/276/213.md +1 -16
  927. package/templates/patterns//345/271/266/345/217/221/346/216/247/345/210/266/350/247/204/350/214/203.md +1 -21
  928. package/templates/patterns//345/274/202/346/255/245/345/257/274/345/207/272/350/247/204/350/214/203.md +1 -18
  929. package/templates/patterns//346/216/245/345/217/243/345/245/221/347/272/246/350/247/204/350/214/203.md +1 -16
  930. package/templates/patterns//346/220/234/347/264/242/346/250/241/345/274/217/350/247/204/350/214/203.md +1 -19
  931. package/templates/patterns//346/225/260/346/215/256/351/232/220/347/247/201/350/247/204/350/214/203.md +2 -21
  932. package/templates/patterns//346/226/207/344/273/266/344/270/212/344/274/240/350/247/204/350/214/203.md +1 -17
  933. package/templates/patterns//346/227/240/351/232/234/347/242/215/350/247/204/350/214/203.md +1 -17
  934. package/templates/patterns//346/227/245/345/277/227/350/247/204/350/214/203.md +1 -18
  935. package/templates/patterns//346/235/203/351/231/220/350/256/244/350/257/201/350/247/204/350/214/203.md +1 -21
  936. package/templates/patterns//346/236/266/346/236/204/347/272/242/347/272/277.md +1 -15
  937. package/templates/patterns//346/265/213/350/257/225/350/264/250/351/207/217/350/247/204/350/214/203.md +1 -16
  938. package/templates/patterns//347/206/224/346/226/255/351/231/215/347/272/247/350/247/204/350/214/203.md +1 -19
  939. package/templates/patterns//347/212/266/346/200/201/346/265/201/350/275/254/350/247/204/350/214/203.md +1 -16
  940. package/templates/patterns//347/272/246/346/235/237/345/256/236/347/216/260/350/247/204/350/214/203.md +1 -18
  941. package/templates/patterns//347/274/223/345/255/230/347/255/226/347/225/245/350/247/204/350/214/203.md +1 -18
  942. package/templates/patterns//347/274/226/347/240/201/350/264/250/351/207/217/350/247/204/350/214/203.md +1 -16
  943. package/templates/patterns//347/274/272/351/231/267/347/256/241/347/220/206/350/247/204/350/214/203.md +1 -15
  944. package/templates/patterns//350/260/203/350/257/225/346/226/271/346/263/225/350/256/272.md +1 -16
  945. package/templates/patterns//350/276/223/345/205/245/346/240/241/351/252/214/350/247/204/350/214/203.md +1 -18
  946. package/templates/patterns//351/224/231/350/257/257/345/244/204/347/220/206/350/247/204/350/214/203.md +1 -18
  947. package/templates/patterns//351/224/231/350/257/257/350/276/271/347/225/214/350/247/204/350/214/203.md +1 -20
  948. package/templates/patterns//351/242/206/345/237/237/351/251/261/345/212/250/350/256/276/350/256/241/350/247/204/350/214/203.md +1 -17
  949. package/templates/procedures/OOD/350/256/276/350/256/241/345/267/245/344/275/234/346/265/201.md +41 -23
  950. package/templates/procedures/Schema/345/217/230/346/233/264/346/265/201/346/260/264/347/272/277.md +9 -17
  951. package/templates/procedures//344/270/215/347/241/256/345/256/232/346/227/266/345/244/264/350/204/221/351/243/216/346/232/264/346/265/201/347/250/213.md +92 -0
  952. package/templates/procedures//344/270/273/351/223/276/350/267/257/346/216/245/345/205/245/351/252/214/350/257/201/346/265/201/347/250/213.md +8 -11
  953. package/templates/procedures//344/273/243/347/240/201/351/227/250/347/246/201/346/265/201/347/250/213.md +1 -9
  954. package/templates/procedures//344/273/273/345/212/241/346/213/206/350/247/243/346/265/201/347/250/213.md +10 -11
  955. package/templates/procedures//344/273/273/345/212/241/350/247/204/345/210/222/345/267/245/344/275/234/346/265/201.md +83 -0
  956. package/templates/procedures//344/274/232/350/257/235/346/201/242/345/244/215/346/265/201/347/250/213.md +2 -13
  957. package/templates/procedures//345/205/250/347/224/237/345/221/275/345/221/250/346/234/237/345/267/245/344/275/234/346/265/201/345/257/274/350/210/252.md +9 -18
  958. package/templates/procedures//345/212/237/350/203/275/345/274/200/345/217/221/346/265/201/347/250/213.md +11 -18
  959. package/templates/procedures//345/220/216/347/253/257/346/216/245/345/217/243/345/256/236/347/216/260/345/267/245/344/275/234/346/265/201.md +1 -11
  960. package/templates/procedures//345/221/275/344/273/244/346/211/247/350/241/214/346/265/201/347/250/213.md +2 -9
  961. package/templates/procedures//345/221/275/344/273/244/350/267/257/347/224/261/346/265/201/347/250/213.md +32 -0
  962. package/templates/procedures//345/256/211/345/205/250/345/212/240/345/233/272/346/265/201/346/260/264/347/272/277.md +9 -17
  963. package/templates/procedures//345/267/245/345/205/267/350/260/203/347/224/250/346/265/201/347/250/213.md +2 -9
  964. package/templates/procedures//346/200/247/350/203/275/346/265/201/346/260/264/347/272/277.md +8 -16
  965. package/templates/procedures//346/204/217/345/233/276/350/267/257/347/224/261/346/265/201/347/250/213.md +5 -10
  966. package/templates/procedures//346/216/245/345/217/243/351/233/206/346/210/220/346/265/201/346/260/264/347/272/277.md +18 -20
  967. package/templates/procedures//346/225/260/346/215/256/345/272/223/350/277/201/347/247/273/346/265/201/347/250/213.md +1 -9
  968. package/templates/procedures//346/234/254/345/234/260/346/265/217/350/247/210/345/231/250/351/252/214/346/224/266/345/267/245/344/275/234/346/265/201.md +1 -9
  969. package/templates/procedures//346/236/266/346/236/204/345/206/263/347/255/226/347/240/224/350/256/250/345/267/245/344/275/234/346/265/201.md +8 -9
  970. package/templates/procedures//346/236/266/346/236/204/350/256/276/350/256/241/345/267/245/344/275/234/346/265/201.md +22 -11
  971. package/templates/procedures//346/246/202/345/277/265/351/252/214/350/257/201/346/265/201/346/260/264/347/272/277.md +9 -15
  972. package/templates/procedures//346/265/213/350/257/225/344/274/230/345/205/210/347/274/226/347/240/201/345/267/245/344/275/234/346/265/201.md +18 -12
  973. package/templates/procedures//346/272/220/347/240/201/345/216/237/345/236/213/344/272/244/344/273/230/346/265/201/347/250/213.md +9 -17
  974. package/templates/procedures//347/216/260/346/234/211/347/263/273/347/273/237/345/267/256/350/267/235/345/210/206/346/236/220/345/267/245/344/275/234/346/265/201.md +29 -11
  975. package/templates/procedures//347/237/245/350/257/206/347/273/264/346/212/244/346/265/201/346/260/264/347/272/277.md +8 -16
  976. package/templates/procedures//347/264/247/346/200/245/344/277/256/345/244/215/346/265/201/346/260/264/347/272/277.md +11 -19
  977. package/templates/procedures//347/274/226/347/240/201/345/211/215/346/276/204/346/270/205/346/265/201/347/250/213.md +7 -9
  978. package/templates/procedures//347/274/226/347/240/201/351/230/266/346/256/265/346/211/247/350/241/214/345/267/245/344/275/234/346/265/201.md +101 -0
  979. package/templates/procedures//350/207/252/344/270/273/351/200/211/345/236/213/346/265/201/347/250/213.md +2 -10
  980. package/templates/procedures//350/256/276/350/256/241/344/272/247/347/211/251/347/224/237/346/210/220/344/270/216/345/244/215/351/252/214/345/267/245/344/275/234/346/265/201.md +32 -15
  981. package/templates/procedures//350/256/276/350/256/241/345/256/241/350/256/241/346/265/201/347/250/213.md +21 -27
  982. package/templates/procedures//350/257/246/347/273/206/350/256/276/350/256/241/346/265/201/347/250/213.md +91 -26
  983. package/templates/procedures//350/260/203/350/257/225/346/216/222/346/237/245/346/265/201/347/250/213.md +31 -11
  984. package/templates/procedures//350/277/201/347/247/273/346/265/201/346/260/264/347/272/277.md +8 -16
  985. package/templates/procedures//351/203/250/347/275/262/345/217/221/345/270/203/346/265/201/347/250/213.md +35 -11
  986. package/templates/procedures//351/207/215/346/236/204/346/265/201/346/260/264/347/272/277.md +8 -16
  987. package/templates/procedures//351/233/206/346/210/220/351/252/214/350/257/201/346/265/201/347/250/213.md +9 -11
  988. package/templates/procedures//351/234/200/346/261/202/346/276/204/346/270/205/346/265/201/347/250/213.md +25 -20
  989. package/templates/procedures//351/252/214/346/224/266/346/265/213/350/257/225/350/247/204/345/210/222.md +8 -11
  990. package/templates/rules/existing-system//345/205/274/345/256/271/346/200/247/346/243/200/346/237/245/350/247/204/345/210/231.md +66 -26
  991. package/templates/rules/existing-system//350/200/201/347/263/273/347/273/237/345/210/207/347/211/207/350/247/204/345/210/222/350/247/204/345/210/231.md +35 -0
  992. package/templates/rules/existing-system//350/200/246/345/220/210/346/243/200/346/265/213/350/247/204/345/210/231.md +57 -23
  993. package/templates/rules/existing-system//350/257/225/350/277/220/350/241/214/347/206/224/346/226/255/350/247/204/345/210/231.md +49 -27
  994. package/templates/rules/existing-system//351/230/262/345/276/241/346/200/247/347/274/226/347/240/201/350/247/204/345/210/231.md +69 -27
  995. package/templates/rules/existing-system//351/233/267/345/214/272/345/217/215/346/250/241/345/274/217/346/270/205/345/215/225.md +109 -26
  996. package/templates/rules/new-system//350/201/224/350/260/203/350/256/276/350/256/241/347/274/272/351/231/267/345/210/244/345/256/232/350/247/204/345/210/231.md +39 -21
  997. package/templates/rules/shared/SOLID/344/273/243/347/240/201/345/256/241/346/237/245/350/247/204/345/210/231.md +47 -22
  998. package/templates/rules/shared//344/270/200/350/207/264/346/200/247/346/240/241/351/252/214/350/247/204/345/210/231.md +84 -12
  999. package/templates/rules/shared//344/270/212/346/270/270/344/272/244/345/217/211/351/252/214/350/257/201/350/247/204/345/210/231.md +56 -0
  1000. package/templates/rules/shared//344/270/212/346/270/270/350/256/276/350/256/241/344/272/244/345/217/211/351/252/214/350/257/201/345/256/241/346/237/245/350/247/204/345/210/231.md +67 -0
  1001. package/templates/rules/shared//344/272/244/344/273/230/345/256/214/345/244/207/346/200/247/345/256/241/346/237/245/350/247/204/345/210/231.md +39 -18
  1002. package/templates/rules/shared//344/273/243/347/240/201/345/217/257/347/273/264/346/212/244/346/200/247/344/270/216/345/217/257/350/247/202/346/265/213/346/200/247/345/256/241/346/237/245.md +45 -60
  1003. package/templates/rules/shared//345/206/263/347/255/226/345/256/214/346/225/264/346/200/247/345/256/241/346/237/245/350/247/204/345/210/231.md +18 -12
  1004. package/templates/rules/shared//345/210/207/347/211/207/346/211/247/350/241/214/347/272/252/345/276/213/350/247/204/345/210/231.md +96 -0
  1005. package/templates/rules/shared//345/210/207/347/211/207/350/247/204/345/210/222/350/247/204/345/210/231.md +64 -0
  1006. package/templates/rules/shared//345/216/237/345/236/213/346/272/220/347/240/201/346/217/220/345/217/226/350/247/204/345/210/231.md +67 -0
  1007. package/templates/rules/shared//345/216/237/345/236/213/350/257/264/346/230/216/345/256/241/346/237/245/350/247/204/345/210/231.md +73 -0
  1008. package/templates/rules/shared//345/217/221/345/270/203/345/220/216/345/256/241/346/237/245/350/247/204/345/210/231.md +22 -15
  1009. package/templates/rules/shared//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213/345/256/241/346/237/245/350/247/204/345/210/231.md +43 -20
  1010. package/templates/rules/shared//345/256/211/345/205/250/345/256/241/346/237/245/350/247/204/345/210/231.md +53 -19
  1011. package/templates/rules/shared//345/271/266/345/217/221/345/256/241/346/237/245/350/247/204/345/210/231.md +39 -12
  1012. package/templates/rules/shared//346/200/247/350/203/275/345/256/241/346/237/245/350/247/204/345/210/231.md +32 -12
  1013. package/templates/rules/shared//346/216/245/345/217/243/345/245/221/347/272/246/345/256/241/346/237/245/350/247/204/345/210/231.md +40 -13
  1014. package/templates/rules/shared//346/236/266/346/236/204/345/256/241/346/237/245/350/247/204/345/210/231.md +31 -13
  1015. package/templates/rules/shared//346/236/266/346/236/204/350/256/276/350/256/241/345/256/241/346/237/245/350/247/204/345/210/231.md +102 -0
  1016. package/templates/rules/shared//346/236/266/346/236/204/350/256/276/350/256/241/350/247/204/345/210/231.md +64 -0
  1017. package/templates/rules/shared//347/213/254/347/253/213/345/256/241/346/237/245/350/247/204/345/210/231.md +33 -0
  1018. package/templates/rules/shared//347/254/254/344/270/200/346/200/247/345/216/237/347/220/206/346/216/250/347/220/206/350/247/204/345/210/231.md +171 -0
  1019. package/templates/rules/shared//347/274/226/347/240/201/345/260/261/347/273/252/345/256/241/346/237/245/350/247/204/345/210/231.md +9 -15
  1020. package/templates/rules/shared//350/201/224/350/260/203/351/252/214/350/257/201/346/270/205/345/215/225.md +62 -18
  1021. package/templates/rules/shared//350/246/206/347/233/226/347/216/207/346/240/207/345/207/206.md +2 -4
  1022. package/templates/rules/shared//350/257/246/347/273/206/350/256/276/350/256/241/345/256/241/346/237/245/350/247/204/345/210/231.md +82 -0
  1023. package/templates/rules/shared//350/264/250/351/207/217/345/256/241/346/237/245/350/247/204/345/210/231.md +17 -14
  1024. package/templates/rules/shared//350/277/275/350/270/252/347/237/251/351/230/265ID/350/247/204/345/210/231.md +48 -0
  1025. package/templates/rules/shared//350/277/275/350/270/252/347/237/251/351/230/265/345/256/241/346/237/245/350/247/204/345/210/231.md +51 -0
  1026. package/templates/rules/shared//351/234/200/346/261/202/350/264/250/351/207/217/345/256/241/346/237/245/350/247/204/345/210/231.md +31 -15
  1027. package/templates/rules/shared//351/252/214/346/224/266/346/240/207/345/207/206/345/256/241/346/237/245/350/247/204/345/210/231.md +15 -17
  1028. package/templates//346/250/241/347/211/210/350/264/241/347/214/256/346/214/207/345/215/227.md +11 -11
  1029. package/dist/engine/config/config_auto_repair.d.ts +0 -30
  1030. package/dist/engine/config/config_auto_repair.d.ts.map +0 -1
  1031. package/dist/engine/config/config_auto_repair.js +0 -261
  1032. package/dist/engine/config/config_auto_repair.js.map +0 -1
  1033. package/dist/engine/config/config_precedence_contract/constants.d.ts +0 -16
  1034. package/dist/engine/config/config_precedence_contract/constants.d.ts.map +0 -1
  1035. package/dist/engine/config/config_precedence_contract/constants.js +0 -166
  1036. package/dist/engine/config/config_precedence_contract/constants.js.map +0 -1
  1037. package/dist/engine/config/config_precedence_contract/evidence.d.ts +0 -38
  1038. package/dist/engine/config/config_precedence_contract/evidence.d.ts.map +0 -1
  1039. package/dist/engine/config/config_precedence_contract/evidence.js +0 -59
  1040. package/dist/engine/config/config_precedence_contract/evidence.js.map +0 -1
  1041. package/dist/engine/config/config_precedence_contract/field_class.d.ts +0 -11
  1042. package/dist/engine/config/config_precedence_contract/field_class.d.ts.map +0 -1
  1043. package/dist/engine/config/config_precedence_contract/field_class.js +0 -10
  1044. package/dist/engine/config/config_precedence_contract/field_class.js.map +0 -1
  1045. package/dist/engine/config/config_precedence_contract/governance.d.ts +0 -31
  1046. package/dist/engine/config/config_precedence_contract/governance.d.ts.map +0 -1
  1047. package/dist/engine/config/config_precedence_contract/governance.js +0 -232
  1048. package/dist/engine/config/config_precedence_contract/governance.js.map +0 -1
  1049. package/dist/engine/config/config_precedence_contract/index.d.ts +0 -21
  1050. package/dist/engine/config/config_precedence_contract/index.d.ts.map +0 -1
  1051. package/dist/engine/config/config_precedence_contract/index.js +0 -28
  1052. package/dist/engine/config/config_precedence_contract/index.js.map +0 -1
  1053. package/dist/engine/config/config_precedence_contract/project_config.d.ts +0 -20
  1054. package/dist/engine/config/config_precedence_contract/project_config.d.ts.map +0 -1
  1055. package/dist/engine/config/config_precedence_contract/project_config.js +0 -210
  1056. package/dist/engine/config/config_precedence_contract/project_config.js.map +0 -1
  1057. package/dist/engine/config/config_precedence_contract/resolution.d.ts +0 -93
  1058. package/dist/engine/config/config_precedence_contract/resolution.d.ts.map +0 -1
  1059. package/dist/engine/config/config_precedence_contract/resolution.js +0 -317
  1060. package/dist/engine/config/config_precedence_contract/resolution.js.map +0 -1
  1061. package/dist/engine/config/config_precedence_contract/types.d.ts +0 -92
  1062. package/dist/engine/config/config_precedence_contract/types.d.ts.map +0 -1
  1063. package/dist/engine/config/config_precedence_contract/types.js +0 -20
  1064. package/dist/engine/config/config_precedence_contract/types.js.map +0 -1
  1065. package/dist/engine/config/config_precedence_contract.d.ts +0 -22
  1066. package/dist/engine/config/config_precedence_contract.d.ts.map +0 -1
  1067. package/dist/engine/config/config_precedence_contract.js +0 -34
  1068. package/dist/engine/config/config_precedence_contract.js.map +0 -1
  1069. package/dist/engine/config/zero_config_init.d.ts +0 -177
  1070. package/dist/engine/config/zero_config_init.d.ts.map +0 -1
  1071. package/dist/engine/config/zero_config_init.js +0 -857
  1072. package/dist/engine/config/zero_config_init.js.map +0 -1
  1073. package/dist/engine/contracts/route_decision_contract_verifier.d.ts +0 -44
  1074. package/dist/engine/contracts/route_decision_contract_verifier.d.ts.map +0 -1
  1075. package/dist/engine/contracts/route_decision_contract_verifier.js +0 -154
  1076. package/dist/engine/contracts/route_decision_contract_verifier.js.map +0 -1
  1077. package/dist/engine/pipeline/classifier.d.ts +0 -24
  1078. package/dist/engine/pipeline/classifier.d.ts.map +0 -1
  1079. package/dist/engine/pipeline/classifier.js +0 -211
  1080. package/dist/engine/pipeline/classifier.js.map +0 -1
  1081. package/dist/engine/pipeline/expand_pipeline.d.ts +0 -122
  1082. package/dist/engine/pipeline/expand_pipeline.d.ts.map +0 -1
  1083. package/dist/engine/pipeline/expand_pipeline.js +0 -141
  1084. package/dist/engine/pipeline/expand_pipeline.js.map +0 -1
  1085. package/dist/engine/pipeline/hook_context_types.d.ts +0 -66
  1086. package/dist/engine/pipeline/hook_context_types.d.ts.map +0 -1
  1087. package/dist/engine/pipeline/hook_context_types.js +0 -118
  1088. package/dist/engine/pipeline/hook_context_types.js.map +0 -1
  1089. package/dist/engine/pipeline/intent_expander/expand.d.ts +0 -16
  1090. package/dist/engine/pipeline/intent_expander/expand.d.ts.map +0 -1
  1091. package/dist/engine/pipeline/intent_expander/expand.js +0 -308
  1092. package/dist/engine/pipeline/intent_expander/expand.js.map +0 -1
  1093. package/dist/engine/pipeline/intent_route_scorer.d.ts +0 -45
  1094. package/dist/engine/pipeline/intent_route_scorer.d.ts.map +0 -1
  1095. package/dist/engine/pipeline/intent_route_scorer.js +0 -341
  1096. package/dist/engine/pipeline/intent_route_scorer.js.map +0 -1
  1097. package/dist/engine/pipeline/intent_router.d.ts +0 -153
  1098. package/dist/engine/pipeline/intent_router.d.ts.map +0 -1
  1099. package/dist/engine/pipeline/intent_router.js +0 -738
  1100. package/dist/engine/pipeline/intent_router.js.map +0 -1
  1101. package/dist/engine/pipeline/intent_signal_extractor.d.ts +0 -91
  1102. package/dist/engine/pipeline/intent_signal_extractor.d.ts.map +0 -1
  1103. package/dist/engine/pipeline/intent_signal_extractor.js +0 -370
  1104. package/dist/engine/pipeline/intent_signal_extractor.js.map +0 -1
  1105. package/dist/engine/pipeline/route_types.d.ts +0 -10
  1106. package/dist/engine/pipeline/route_types.d.ts.map +0 -1
  1107. package/dist/engine/pipeline/route_types.js +0 -9
  1108. package/dist/engine/pipeline/route_types.js.map +0 -1
  1109. package/dist/engine/pipeline/stage_gate_engine.d.ts +0 -34
  1110. package/dist/engine/pipeline/stage_gate_engine.d.ts.map +0 -1
  1111. package/dist/engine/pipeline/stage_gate_engine.js +0 -123
  1112. package/dist/engine/pipeline/stage_gate_engine.js.map +0 -1
  1113. package/dist/engine/pipeline/stage_prechecks.d.ts +0 -83
  1114. package/dist/engine/pipeline/stage_prechecks.d.ts.map +0 -1
  1115. package/dist/engine/pipeline/stage_prechecks.js +0 -199
  1116. package/dist/engine/pipeline/stage_prechecks.js.map +0 -1
  1117. package/dist/engine/workflow/legacy_type_migration.d.ts +0 -64
  1118. package/dist/engine/workflow/legacy_type_migration.d.ts.map +0 -1
  1119. package/dist/engine/workflow/legacy_type_migration.js +0 -233
  1120. package/dist/engine/workflow/legacy_type_migration.js.map +0 -1
  1121. package/dist/server/tools/tool_groups/classify_expand.d.ts +0 -3
  1122. package/dist/server/tools/tool_groups/classify_expand.d.ts.map +0 -1
  1123. package/dist/server/tools/tool_groups/classify_expand.js +0 -7
  1124. package/dist/server/tools/tool_groups/classify_expand.js.map +0 -1
  1125. package/dist/server/tools/tool_groups/classify_handler.d.ts +0 -3
  1126. package/dist/server/tools/tool_groups/classify_handler.d.ts.map +0 -1
  1127. package/dist/server/tools/tool_groups/classify_handler.js +0 -65
  1128. package/dist/server/tools/tool_groups/classify_handler.js.map +0 -1
  1129. package/dist/server/tools/tool_groups/expand_handler.d.ts +0 -3
  1130. package/dist/server/tools/tool_groups/expand_handler.d.ts.map +0 -1
  1131. package/dist/server/tools/tool_groups/expand_handler.js +0 -813
  1132. package/dist/server/tools/tool_groups/expand_handler.js.map +0 -1
  1133. package/dist/server/tools/tool_groups/status_plan_analyze_review.d.ts +0 -4
  1134. package/dist/server/tools/tool_groups/status_plan_analyze_review.d.ts.map +0 -1
  1135. package/dist/server/tools/tool_groups/status_plan_analyze_review.js +0 -421
  1136. package/dist/server/tools/tool_groups/status_plan_analyze_review.js.map +0 -1
  1137. package/dist/server/tools/tool_groups/verify_learn.d.ts +0 -3
  1138. package/dist/server/tools/tool_groups/verify_learn.d.ts.map +0 -1
  1139. package/dist/server/tools/tool_groups/verify_learn.js +0 -952
  1140. package/dist/server/tools/tool_groups/verify_learn.js.map +0 -1
  1141. package/templates/internal/patterns//351/233/266/351/205/215/347/275/256/345/210/235/345/247/213/345/214/226.md +0 -64
@@ -0,0 +1,1197 @@
1
+ /**
2
+ * 管线状态机 — 状态转换、阶段序列、持久化、并发锁。
3
+ *
4
+ * 初始化 → 阶段执行 → 推进 → 回退 → 门禁检查。
5
+ *
6
+ * 持久化格式:YAML 文件(.soloforge/state/pipeline-{id}.yaml)。
7
+ * 并发控制:乐观锁(lock.version)CAS 校验。
8
+ */
9
+ import crypto from "node:crypto";
10
+ import fs from "node:fs/promises";
11
+ import path from "node:path";
12
+ import YAML from "yaml";
13
+ import { findPipelineBySystemType, findStageContract } from "../../workflow/workflow_contract_registry.js";
14
+ import { evaluateCertaintyGate } from "./certainty_gate.js";
15
+ import { getStageActions, getDefaultAction } from "./stage_command_registry.js";
16
+ import { STAGE_WORKFLOW_MAP } from "../../../types/state_machine.js";
17
+ import { runSelfDiagnostic } from "./state_self_diagnostic.js";
18
+ import { verifyStrongConfirmation, generateJumpConfirmationText, generateResetConfirmationText, } from "./strong_confirmation.js";
19
+ import { runPrivacyGate } from "../intent_expander/privacy_gates.js";
20
+ import { appendAuditLog, saveSnapshot } from "./audit_logger.js";
21
+ import { scoreGateCheckConfidence } from "../../audit/confidence_scorer.js";
22
+ import { resolveBrainstormTrigger, resolveFirstPrinciplesTrigger } from "./uncertainty_bridge.js";
23
+ /**
24
+ * 管线状态机 — 管理单个管线的完整生命周期。
25
+ *
26
+ * 使用方式:
27
+ * ```typescript
28
+ * const sm = new PipelineStateMachine(stateDir);
29
+ * const init = await sm.init({ system_type: "新系统", description: "..." });
30
+ * const exec = await sm.executeStage({ description: "...", knowledgeIndex, config });
31
+ * const adv = await sm.advanceStage({ knowledgeIndex, config });
32
+ * ```
33
+ */
34
+ export class PipelineStateMachine {
35
+ stateDir;
36
+ constructor(stateDir) {
37
+ this.stateDir = stateDir;
38
+ }
39
+ // ── 初始化 ──
40
+ /**
41
+ * 初始化新管线。
42
+ *
43
+ * @returns 初始化结果,包含管线 ID 和初始阶段
44
+ * @throws 管线已存在时返回现有管线信息
45
+ */
46
+ async init(params) {
47
+ // 检查是否已有活跃管线
48
+ const existing = await this.getCurrentPipeline();
49
+ if (existing) {
50
+ return {
51
+ pipeline_id: existing.pipeline_id,
52
+ system_type: existing.system_type,
53
+ initial_stage: existing.current_stage,
54
+ stage_count: existing.stages.length,
55
+ available_actions: [],
56
+ required_inputs: [],
57
+ };
58
+ }
59
+ // 获取阶段序列
60
+ const pipelineContract = findPipelineBySystemType(params.system_type);
61
+ if (!pipelineContract) {
62
+ throw new Error(`未找到 ${params.system_type} 管线契约`);
63
+ }
64
+ const stageSequence = pipelineContract.stages;
65
+ const pipelineId = `pipeline-${crypto.randomUUID().slice(0, 8)}`;
66
+ const now = new Date().toISOString();
67
+ // 构建初始状态(包含新字段:output_hashes, rollback_history, audit_log)
68
+ const state = {
69
+ version: "1.0",
70
+ pipeline_id: pipelineId,
71
+ system_type: params.system_type,
72
+ description: params.description,
73
+ current_stage: stageSequence[0],
74
+ stages: stageSequence.map((stage, index) => ({
75
+ stage,
76
+ status: (index === 0 ? "in_progress" : "pending"),
77
+ started_at: index === 0 ? now : null,
78
+ completed_at: null,
79
+ outputs: [],
80
+ })),
81
+ lock: {
82
+ version: 1,
83
+ locked_at: now,
84
+ },
85
+ output_hashes: {},
86
+ rollback_history: [],
87
+ audit_log: [{
88
+ timestamp: now,
89
+ operation: "init",
90
+ reason: `初始化${params.system_type}管线`,
91
+ }],
92
+ };
93
+ // 持久化
94
+ await this.save(state);
95
+ await this.writePointer(pipelineId);
96
+ // 获取初始阶段的必需输入
97
+ const initialStageContract = findStageContract(stageSequence[0]);
98
+ const requiredInputs = initialStageContract?.required_inputs ?? [];
99
+ return {
100
+ pipeline_id: pipelineId,
101
+ system_type: params.system_type,
102
+ initial_stage: stageSequence[0],
103
+ stage_count: stageSequence.length,
104
+ available_actions: [
105
+ {
106
+ action: "execute",
107
+ description_zh: `执行当前阶段: ${stageSequence[0]}`,
108
+ tool: "sf_stage_execute",
109
+ params: { stage: stageSequence[0] },
110
+ },
111
+ {
112
+ action: "gate_check",
113
+ description_zh: "运行确定性门禁检查",
114
+ tool: "sf_gate_check",
115
+ },
116
+ ],
117
+ required_inputs: requiredInputs,
118
+ };
119
+ }
120
+ // ── 读取 ──
121
+ /** 加载指定管线状态 */
122
+ async load(pipelineId) {
123
+ const filePath = this.pipelinePath(pipelineId);
124
+ try {
125
+ const content = await fs.readFile(filePath, "utf-8");
126
+ const parsed = YAML.parse(content);
127
+ // 兼容旧格式:补全缺失字段
128
+ return ensurePipelineStateFields(parsed);
129
+ }
130
+ catch {
131
+ return null;
132
+ }
133
+ }
134
+ /** 获取当前活跃管线 */
135
+ async getCurrentPipeline() {
136
+ const pointer = await this.readPointer();
137
+ if (!pointer)
138
+ return null;
139
+ return this.load(pointer.pipeline_id);
140
+ }
141
+ // ── 阶段执行 ──
142
+ /**
143
+ * 执行阶段工作或恢复操作。
144
+ *
145
+ * 标准流程:
146
+ * 1. 加载管线状态
147
+ * 2. 运行自诊断
148
+ * 3. 运行隐私门禁
149
+ * 4. 运行确定性门禁
150
+ * 5. 注入知识
151
+ * 6. 返回执行结果
152
+ *
153
+ * 恢复操作:diagnose / repair / jump / reset / archive
154
+ */
155
+ async executeStage(params) {
156
+ // ── 恢复操作分发 ──
157
+ const action = params.action;
158
+ if (action === "diagnose")
159
+ return this.handleDiagnose(params);
160
+ if (action === "repair")
161
+ return this.handleRepair(params);
162
+ if (action === "jump")
163
+ return this.handleJump(params);
164
+ if (action === "reset")
165
+ return this.handleReset(params);
166
+ if (action === "archive")
167
+ return this.handleArchive(params);
168
+ // ── 标准阶段执行 ──
169
+ const state = await this.requireCurrentPipeline();
170
+ const stage = params.stage ?? state.current_stage;
171
+ // 自诊断检查
172
+ const diagnosticReport = await runSelfDiagnostic(this.stateDir);
173
+ // 校验阶段在管线中存在
174
+ const stageEntry = state.stages.find((s) => s.stage === stage);
175
+ if (!stageEntry) {
176
+ throw new Error(`阶段 "${stage}" 不在管线中`);
177
+ }
178
+ // 隐私门禁检查
179
+ const description = params.description ?? "";
180
+ const privacyResult = runPrivacyGate(description, { lightweight: true }, [], // 无输入材料(stage-native 路径由 stage_executor 提供)
181
+ stage);
182
+ if (privacyResult.privacyGate.hard_fail) {
183
+ return {
184
+ task_id: params.task_id ?? null,
185
+ pipeline_id: state.pipeline_id,
186
+ stage,
187
+ action: action ?? "execute",
188
+ status: "in_progress",
189
+ outputs: [],
190
+ knowledge_hit_count: 0,
191
+ gate_result: null,
192
+ next_actions: [],
193
+ delegate_hint: null,
194
+ blocked: true,
195
+ block_reason: "隐私门禁阻断: " + (privacyResult.privacyGate.blocked_sources.join(", ") || "敏感信息检测"),
196
+ diagnostic_report: diagnosticReport,
197
+ };
198
+ }
199
+ // 运行确定性门禁
200
+ const gateResult = await this.runGateCheck(stage, state, description, params.knowledgeIndex, params.config);
201
+ // 知识注入计数
202
+ let knowledgeHitCount = 0;
203
+ try {
204
+ const results = params.knowledgeIndex.query({ stages: [stage], limit: 50 });
205
+ knowledgeHitCount = results.length;
206
+ }
207
+ catch {
208
+ // 知识查询失败不阻断
209
+ }
210
+ // ── 上下文引擎分析 ──
211
+ let contextAnalysis;
212
+ try {
213
+ const { stageNeedsEngine, resolveContext } = await import("../../context_engine/index.js");
214
+ const { getView, dispatchView } = await import("../../context_engine/view_registry.js");
215
+ if (stageNeedsEngine(stage)) {
216
+ // 使用 file_impact 视图作为默认分析视图
217
+ const resolved = resolveContext({ view: "file_impact", source: "auto" }, stage, { scopeRoots: [] });
218
+ if (getView(resolved.view) && resolved.targets.length > 0) {
219
+ const vr = await dispatchView(resolved.view, process.cwd(), {
220
+ targets: resolved.targets,
221
+ scope: resolved.scope,
222
+ });
223
+ contextAnalysis = vr.summary;
224
+ }
225
+ }
226
+ }
227
+ catch {
228
+ // 降级:上下文引擎失败不阻断管线
229
+ }
230
+ // ── 执行规则与门禁注入(companion_injector) ──
231
+ let companionInjection;
232
+ try {
233
+ const { injectCompanions } = await import("../../context_engine/companion_injector.js");
234
+ const matter = await import("gray-matter");
235
+ const fs = await import("node:fs/promises");
236
+ const path = await import("node:path");
237
+ const templateEntries = params.knowledgeIndex.query({
238
+ type: "acceptance_template",
239
+ stages: [stage],
240
+ limit: 5,
241
+ });
242
+ for (const entry of templateEntries) {
243
+ // 从模板文件读取 frontmatter 提取 companion_rules/companion_gates
244
+ const tplPath = path.resolve(process.cwd(), entry.file_path);
245
+ let raw;
246
+ try {
247
+ raw = await fs.readFile(tplPath, "utf-8");
248
+ }
249
+ catch {
250
+ continue;
251
+ }
252
+ const parsed = matter.default(raw);
253
+ const fm = (parsed.data ?? {});
254
+ const cr = fm.companion_rules;
255
+ const cg = fm.companion_gates;
256
+ if (cr?.length || cg?.length) {
257
+ const result = injectCompanions({
258
+ baseDir: process.cwd(),
259
+ companion_rules: cr,
260
+ companion_gates: cg,
261
+ operation: "execute",
262
+ });
263
+ if (result.injection_text) {
264
+ if (!companionInjection)
265
+ companionInjection = result.injection_text;
266
+ else
267
+ companionInjection += "\n\n" + result.injection_text;
268
+ }
269
+ }
270
+ }
271
+ }
272
+ catch {
273
+ // 降级:companion 注入失败不阻断管线
274
+ }
275
+ // 获取可用动作
276
+ const actionId = action ?? getDefaultAction(stage).action_id;
277
+ const actions = getStageActions(stage);
278
+ const nextActions = actions.map((a) => a.action_id);
279
+ // 委托提示(Phase 2 使用)
280
+ const delegateHint = buildDelegateHint(stage, actionId, params.description);
281
+ // 构建结果
282
+ const result = {
283
+ task_id: params.task_id ?? null,
284
+ pipeline_id: state.pipeline_id,
285
+ stage,
286
+ action: actionId,
287
+ status: stageEntry.status,
288
+ outputs: stageEntry.outputs,
289
+ knowledge_hit_count: knowledgeHitCount,
290
+ gate_result: gateResult,
291
+ next_actions: nextActions,
292
+ delegate_hint: delegateHint,
293
+ diagnostic_report: diagnosticReport,
294
+ context_analysis: contextAnalysis,
295
+ companion_injection: companionInjection,
296
+ };
297
+ // brainstorm 触发信息(通过 uncertainty_bridge 构建结构化请求)
298
+ if (gateResult.level2.brainstorm_required) {
299
+ const fpRules = gateResult.level2.fp_rules_triggered ?? [];
300
+ const fpSuffix = fpRules.length > 0 ? `;FP 规则命中: ${fpRules.join(", ")}` : "";
301
+ const req = resolveBrainstormTrigger(gateResult.level2.risk_patterns_hit, stage, `${stage} 阶段风险方案讨论`);
302
+ result.brainstorm_trigger = {
303
+ reason: `检测到风险模式: ${gateResult.level2.risk_patterns_hit.join(", ")}${fpSuffix}`,
304
+ suggestion: gateResult.level2.brainstorm_template?.default_strategy ?? req.topic,
305
+ };
306
+ }
307
+ // first_principles 触发信息(通过 uncertainty_bridge 构建结构化请求)
308
+ if (gateResult.level2.first_principles_required) {
309
+ const fpRules = gateResult.level2.fp_rules_triggered ?? [];
310
+ const fpSuffix = fpRules.length > 0 ? `;FP 规则命中: ${fpRules.join(", ")}` : "";
311
+ const req = resolveFirstPrinciplesTrigger(stage, gateResult.level2.risk_patterns_hit, `${stage} 阶段需要从第一性原理重新审视`);
312
+ result.first_principles_trigger = {
313
+ reason: `涉及高风险模式: ${gateResult.level2.risk_patterns_hit.join(", ")}${fpSuffix}`,
314
+ suggestion: `建议从第一性原理重新审视决策(参考 templates/rules/shared/第一性原理推理规则.md)— ${req.scope_description}`,
315
+ };
316
+ }
317
+ // 代码审查失败自动回退建议
318
+ if (stage === "代码审查" && !gateResult.overall_passed) {
319
+ result.auto_rollback_suggestion = {
320
+ target: "编码与单元测试",
321
+ reason: "代码审查未通过,建议回退到编码阶段修复问题",
322
+ };
323
+ }
324
+ // 架构设计阶段: 技术决策门控 — 评估技术决策契约完整性和执行权限
325
+ if (stage === "架构设计") {
326
+ try {
327
+ const { validateTechnologyDecision, evaluateDecisionExecution } = await import("../../contracts/technology_decision.js");
328
+ // 架构级决策需要人类门禁
329
+ const archDecision = {
330
+ decision_id: `${state.pipeline_id}-arch-decision`,
331
+ decision_scope: "architecture",
332
+ human_gate_required: true,
333
+ executable_without_human: false,
334
+ options: [{ option_id: "default", title: "架构方案", description: params.description ?? "架构设计" }],
335
+ recommended_option: "default",
336
+ rejected_options: [],
337
+ evidence: [],
338
+ falsification: [],
339
+ failure_conditions: [],
340
+ validation_plan: [],
341
+ rollback_or_exit_plan: [],
342
+ };
343
+ const validation = validateTechnologyDecision(archDecision);
344
+ const execution = evaluateDecisionExecution(archDecision, { decision_id: archDecision.decision_id, decision_status: "recommended", evidence_ids: [] });
345
+ result.architecture_decision_gate = {
346
+ allowed: execution.allowed,
347
+ reason_zh: execution.allowed ? "架构决策门控通过" : "架构决策需要人类确认后方可执行",
348
+ validation: { valid: validation.valid, violations: validation.violations, warnings: validation.warnings },
349
+ execution: { allowed: execution.allowed, requires_human_gate: archDecision.human_gate_required, executable_without_human: archDecision.executable_without_human, reason: execution.reason ?? "" },
350
+ };
351
+ }
352
+ catch {
353
+ // technology_decision 模块不可用时不阻断
354
+ }
355
+ }
356
+ return result;
357
+ }
358
+ // ── 阶段推进 ──
359
+ /**
360
+ * 推进到下一阶段。
361
+ *
362
+ * 1. 运行自诊断
363
+ * 2. 运行当前阶段门禁
364
+ * 3. 标记当前阶段为 completed
365
+ * 4. 标记下一阶段为 in_progress
366
+ * 5. 审计日志 + 持久化
367
+ */
368
+ async advanceStage(params) {
369
+ const state = await this.requireCurrentPipeline();
370
+ // 自诊断检查(Phase 2: fail-closed — 不健康时阻断推进)
371
+ const diagnosticReport = await runSelfDiagnostic(this.stateDir);
372
+ if (!diagnosticReport.healthy && !params.force) {
373
+ const issues = diagnosticReport.checks
374
+ .filter((c) => !c.passed)
375
+ .map((c) => c.issue)
376
+ .join("; ");
377
+ throw new Error(`管线自诊断发现异常: ${issues}。请运行 soloforge status 查看详情,或使用 --force 强制推进。`);
378
+ }
379
+ const currentStage = state.current_stage;
380
+ // 运行门禁
381
+ const gateResult = await this.runGateCheck(currentStage, state, "", params.knowledgeIndex, params.config);
382
+ // Phase 2: 门禁不通过时阻断推进(force 可跳过)
383
+ if (!gateResult.overall_passed && !params.force) {
384
+ const failedItems = gateResult.checks
385
+ .filter((item) => !item.passed)
386
+ .map((item) => `${item.name_zh}: ${item.blocking_reason ?? item.evidence}`)
387
+ .join("; ");
388
+ throw new Error(`阶段推进被门禁阻断: ${failedItems}。请解决门禁项后重试,或使用 --force 强制推进。`);
389
+ }
390
+ // 查找下一阶段
391
+ const stageSequence = state.stages.map((s) => s.stage);
392
+ const currentIndex = stageSequence.indexOf(currentStage);
393
+ const nextIndex = currentIndex + 1;
394
+ if (nextIndex >= stageSequence.length) {
395
+ throw new Error(`已处于最后阶段 "${currentStage}",无法推进`);
396
+ }
397
+ const nextStage = stageSequence[nextIndex];
398
+ const fromStage = currentStage;
399
+ // B8: 任务推进一致性校验(Phase 2: fail-closed)
400
+ if (currentStage === "任务规划" && !params.force) {
401
+ const b8Result = checkTaskPlanningConsistency(state);
402
+ if (!b8Result.passed) {
403
+ throw new Error(`任务规划一致性校验失败: ${b8Result.details}。请解决后重试,或使用 --force 强制推进。`);
404
+ }
405
+ }
406
+ // B12: 阶段推进门禁完善(Phase 2: fail-closed)
407
+ if (currentStage === "现有系统分析" && !params.force) {
408
+ const b12Risk = checkCrashRisk(state);
409
+ if (b12Risk) {
410
+ throw new Error("检测到崩溃风险指标,请先完成崩溃风险分析。或使用 --force 强制推进。");
411
+ }
412
+ }
413
+ // 操作前保存快照 + 审计日志
414
+ let snapshotPath;
415
+ try {
416
+ snapshotPath = await saveSnapshot(this.stateDir, state.pipeline_id, state);
417
+ }
418
+ catch {
419
+ // 快照保存失败不阻断操作
420
+ }
421
+ // 内嵌审计日志
422
+ appendAuditLogEntry(state, {
423
+ timestamp: new Date().toISOString(),
424
+ operation: "advance",
425
+ from_stage: fromStage,
426
+ to_stage: nextStage,
427
+ user_confirmation: params.confirmation,
428
+ previous_snapshot_path: snapshotPath,
429
+ });
430
+ // 文件审计日志
431
+ appendAuditLog(this.stateDir, {
432
+ timestamp: new Date().toISOString(),
433
+ operation: "advance",
434
+ from_stage: fromStage,
435
+ to_stage: nextStage,
436
+ user_confirmation: params.confirmation,
437
+ previous_snapshot_path: snapshotPath,
438
+ }).catch(() => { });
439
+ // 更新状态
440
+ const now = new Date().toISOString();
441
+ for (const entry of state.stages) {
442
+ if (entry.stage === currentStage) {
443
+ entry.status = "completed";
444
+ entry.completed_at = now;
445
+ }
446
+ if (entry.stage === nextStage) {
447
+ entry.status = "in_progress";
448
+ entry.started_at = now;
449
+ }
450
+ }
451
+ state.current_stage = nextStage;
452
+ await this.save(state);
453
+ return {
454
+ pipeline_id: state.pipeline_id,
455
+ from_stage: fromStage,
456
+ to_stage: nextStage,
457
+ gate_passed: gateResult.overall_passed,
458
+ gate_result: gateResult,
459
+ };
460
+ }
461
+ // ── 阶段回退 ──
462
+ /**
463
+ * 回退到指定阶段。
464
+ *
465
+ * 1. 校验目标阶段在 rollback_targets 中
466
+ * 2. 审计日志 + 保存快照
467
+ * 3. 标记中间阶段为 skipped
468
+ * 4. 收集 stale 产出
469
+ * 5. 持久化
470
+ */
471
+ async rollbackStage(params) {
472
+ const state = await this.requireCurrentPipeline();
473
+ const currentStage = state.current_stage;
474
+ // 确定回退目标
475
+ const stageContract = findStageContract(currentStage);
476
+ if (!stageContract) {
477
+ throw new Error(`未找到阶段 "${currentStage}" 的契约`);
478
+ }
479
+ // 如果未指定目标,使用第一个 rollback_target
480
+ let targetStage = params.target_stage;
481
+ if (!targetStage) {
482
+ if (stageContract.rollback_targets.length === 0) {
483
+ throw new Error(`阶段 "${currentStage}" 无可回退目标`);
484
+ }
485
+ targetStage = stageContract.rollback_targets[0];
486
+ }
487
+ // 校验目标在允许列表中
488
+ const allowedTargets = [
489
+ ...stageContract.rollback_targets,
490
+ ...stageContract.rollback_annotate_targets,
491
+ ];
492
+ if (!allowedTargets.includes(targetStage)) {
493
+ throw new Error(`阶段 "${currentStage}" 不允许回退到 "${targetStage}",允许目标: ${allowedTargets.join(", ")}`);
494
+ }
495
+ // 计算被跳过的阶段
496
+ const stageSequence = state.stages.map((s) => s.stage);
497
+ const targetIndex = stageSequence.indexOf(targetStage);
498
+ const currentIndex = stageSequence.indexOf(currentStage);
499
+ const skippedStages = [];
500
+ const staleOutputs = [];
501
+ const lostOutputs = [];
502
+ const now = new Date().toISOString();
503
+ for (let i = targetIndex + 1; i <= currentIndex; i++) {
504
+ const stage = stageSequence[i];
505
+ const entry = state.stages[i];
506
+ skippedStages.push(stage);
507
+ staleOutputs.push(...entry.outputs);
508
+ // 已完成阶段的产出在回退后视为丢失
509
+ if (entry.status === "completed") {
510
+ lostOutputs.push(...entry.outputs);
511
+ }
512
+ entry.status = "skipped";
513
+ entry.completed_at = now;
514
+ }
515
+ // 设置目标阶段为 in_progress
516
+ const targetEntry = state.stages[targetIndex];
517
+ targetEntry.status = "in_progress";
518
+ targetEntry.started_at = now;
519
+ state.current_stage = targetStage;
520
+ // 操作前保存快照
521
+ let snapshotPath;
522
+ try {
523
+ snapshotPath = await saveSnapshot(this.stateDir, state.pipeline_id, state);
524
+ }
525
+ catch {
526
+ // 快照保存失败不阻断操作
527
+ }
528
+ // 内嵌审计日志
529
+ appendAuditLogEntry(state, {
530
+ timestamp: now,
531
+ operation: "rollback",
532
+ from_stage: currentStage,
533
+ to_stage: targetStage,
534
+ reason: params.reason,
535
+ previous_snapshot_path: snapshotPath,
536
+ });
537
+ // 文件审计日志
538
+ appendAuditLog(this.stateDir, {
539
+ timestamp: now,
540
+ operation: "rollback",
541
+ from_stage: currentStage,
542
+ to_stage: targetStage,
543
+ reason: params.reason,
544
+ previous_snapshot_path: snapshotPath,
545
+ }).catch(() => { });
546
+ // 追加回退历史
547
+ state.rollback_history.push({
548
+ from: currentStage,
549
+ to: targetStage,
550
+ reason: params.reason,
551
+ at: now,
552
+ });
553
+ await this.save(state);
554
+ return {
555
+ pipeline_id: state.pipeline_id,
556
+ from_stage: currentStage,
557
+ to_stage: targetStage,
558
+ stale_outputs: staleOutputs,
559
+ skipped_stages: skippedStages,
560
+ lost_outputs: lostOutputs,
561
+ directive: "回退后需重新执行被跳过阶段",
562
+ context_snapshot: snapshotPath,
563
+ };
564
+ }
565
+ // ── 门禁检查 ──
566
+ /**
567
+ * 显式门禁检查(不修改状态)。
568
+ */
569
+ async checkGate(params) {
570
+ const state = await this.requireCurrentPipeline();
571
+ const stage = params.stage ?? state.current_stage;
572
+ return this.runGateCheck(stage, state, "", params.knowledgeIndex, params.config);
573
+ }
574
+ // ── 下一步导航 ──
575
+ /**
576
+ * 获取下一步导航信息。
577
+ *
578
+ * 综合管线状态、项目阶段、可用动作、阻断项和确认项,
579
+ * 返回完整的导航快照供 AI 和用户参考。
580
+ */
581
+ async getNext() {
582
+ // 自诊断检查
583
+ const diagnosticReport = await runSelfDiagnostic(this.stateDir);
584
+ const pipeline = await this.getCurrentPipeline();
585
+ // 无活跃管线:返回初始导航
586
+ if (!pipeline) {
587
+ return {
588
+ pipeline_type: null,
589
+ pipeline_active: false,
590
+ project_stage: "uninitialized",
591
+ current_task_stage: null,
592
+ stage_status: "not_started",
593
+ progress_percent: 0,
594
+ available_actions: [
595
+ {
596
+ action: "init",
597
+ description_zh: "初始化开发管线",
598
+ tool: "sf_pipeline_init",
599
+ params: { system_type: "新系统" },
600
+ },
601
+ ],
602
+ blocking_items: [],
603
+ confirmations: [],
604
+ work_package: null,
605
+ };
606
+ }
607
+ // 计算进度百分比(防止空 stages 数组导致 NaN)
608
+ const totalStages = pipeline.stages.length;
609
+ const completedCount = pipeline.stages.filter((s) => s.status === "completed").length;
610
+ const progressPercent = totalStages === 0 ? 0 : Math.round((completedCount / totalStages) * 100);
611
+ // 当前阶段状态映射
612
+ const currentEntry = pipeline.stages.find((s) => s.stage === pipeline.current_stage);
613
+ const stageStatus = mapStageStatus(currentEntry?.status ?? "pending");
614
+ // 构建可用动作
615
+ const availableActions = buildAvailableActions(pipeline);
616
+ // 构建阻断项(自诊断发现问题时提示)
617
+ const blockingItems = [];
618
+ if (!diagnosticReport.healthy) {
619
+ const issues = diagnosticReport.checks
620
+ .filter((c) => !c.passed && c.severity === "error")
621
+ .map((c) => c.issue);
622
+ if (issues.length > 0) {
623
+ blockingItems.push({
624
+ reason: `自诊断发现问题: ${issues.join("; ")}`,
625
+ resolution_command: "[sf] 诊断",
626
+ });
627
+ }
628
+ }
629
+ // 构建确认项
630
+ const confirmations = [];
631
+ // 项目阶段推断
632
+ const projectStage = inferProjectStage(pipeline);
633
+ return {
634
+ pipeline_type: `pipeline-${pipeline.system_type === "新系统" ? "new" : "existing"}-system`,
635
+ pipeline_active: true,
636
+ project_stage: projectStage,
637
+ current_task_stage: pipeline.current_stage,
638
+ stage_status: stageStatus,
639
+ progress_percent: progressPercent,
640
+ available_actions: availableActions,
641
+ blocking_items: blockingItems,
642
+ confirmations: confirmations,
643
+ work_package: null,
644
+ };
645
+ }
646
+ // ── 管线全貌 ──
647
+ /**
648
+ * 获取管线全貌快照。
649
+ *
650
+ * 返回所有阶段的状态、进度百分比和回退历史。
651
+ */
652
+ async getPipelineStatus() {
653
+ const pipeline = await this.requireCurrentPipeline();
654
+ // 计算当前阶段索引和进度(防止空 stages 数组导致 NaN)
655
+ const currentIndex = pipeline.stages.findIndex((s) => s.stage === pipeline.current_stage);
656
+ const completedCount = pipeline.stages.filter((s) => s.status === "completed").length;
657
+ const progressPercent = pipeline.stages.length === 0 ? 0 : Math.round((completedCount / pipeline.stages.length) * 100);
658
+ // 映射阶段详情
659
+ const stages = pipeline.stages.map((entry) => ({
660
+ stage: entry.stage,
661
+ status: entry.status === "in_progress"
662
+ ? "in_progress"
663
+ : entry.status === "completed"
664
+ ? "completed"
665
+ : entry.status === "skipped"
666
+ ? "skipped"
667
+ : "pending",
668
+ started_at: entry.started_at ?? undefined,
669
+ completed_at: entry.completed_at ?? undefined,
670
+ outputs: entry.outputs,
671
+ }));
672
+ // 读取回退历史
673
+ const rollbackHistory = pipeline.rollback_history.map((entry) => ({
674
+ from: entry.from,
675
+ to: entry.to,
676
+ reason: entry.reason,
677
+ at: entry.at,
678
+ }));
679
+ return {
680
+ pipeline_type: `pipeline-${pipeline.system_type === "新系统" ? "new" : "existing"}-system`,
681
+ system_type: pipeline.system_type === "新系统" ? "new_system" : "existing_system",
682
+ stages,
683
+ current_stage_index: currentIndex,
684
+ progress_percent: progressPercent,
685
+ rollback_history: rollbackHistory,
686
+ };
687
+ }
688
+ // ═══════════════════════════════════════════
689
+ // 恢复操作处理器
690
+ // ═══════════════════════════════════════════
691
+ /** 诊断:运行自诊断并返回报告 */
692
+ async handleDiagnose(_params) {
693
+ const diagnosticReport = await runSelfDiagnostic(this.stateDir);
694
+ const state = await this.getCurrentPipeline();
695
+ return {
696
+ task_id: _params.task_id ?? null,
697
+ pipeline_id: state?.pipeline_id ?? "no-pipeline",
698
+ stage: state?.current_stage ?? "需求分析",
699
+ action: "diagnose",
700
+ status: "in_progress",
701
+ outputs: [],
702
+ knowledge_hit_count: 0,
703
+ gate_result: null,
704
+ next_actions: [],
705
+ delegate_hint: null,
706
+ diagnostic_report: diagnosticReport,
707
+ };
708
+ }
709
+ /** 修复:基于诊断结果自动修复 */
710
+ async handleRepair(_params) {
711
+ await runSelfDiagnostic(this.stateDir);
712
+ const state = await this.requireCurrentPipeline();
713
+ // 修复逻辑:补全缺失字段
714
+ let repaired = false;
715
+ const fixDetails = [];
716
+ // 补全 output_hashes
717
+ if (!state.output_hashes) {
718
+ state.output_hashes = {};
719
+ repaired = true;
720
+ fixDetails.push("补全 output_hashes 字段");
721
+ }
722
+ // 补全 rollback_history
723
+ if (!state.rollback_history) {
724
+ state.rollback_history = [];
725
+ repaired = true;
726
+ fixDetails.push("补全 rollback_history 字段");
727
+ }
728
+ // 补全 audit_log
729
+ if (!state.audit_log) {
730
+ state.audit_log = [];
731
+ repaired = true;
732
+ fixDetails.push("补全 audit_log 字段");
733
+ }
734
+ if (repaired) {
735
+ appendAuditLogEntry(state, {
736
+ timestamp: new Date().toISOString(),
737
+ operation: "repair",
738
+ reason: `自动修复: ${fixDetails.join(", ")}`,
739
+ });
740
+ await this.save(state);
741
+ }
742
+ return {
743
+ task_id: _params.task_id ?? null,
744
+ pipeline_id: state.pipeline_id,
745
+ stage: state.current_stage,
746
+ action: "repair",
747
+ status: "in_progress",
748
+ outputs: [],
749
+ knowledge_hit_count: 0,
750
+ gate_result: null,
751
+ next_actions: [],
752
+ delegate_hint: null,
753
+ diagnostic_report: await runSelfDiagnostic(this.stateDir),
754
+ block_reason: repaired ? `已修复: ${fixDetails.join(", ")}` : "无需修复",
755
+ };
756
+ }
757
+ /** 跳转:强确认后跳转到指定阶段 */
758
+ async handleJump(params) {
759
+ const state = await this.requireCurrentPipeline();
760
+ const targetStage = params.target_stage ?? params.stage;
761
+ if (!targetStage) {
762
+ return {
763
+ task_id: params.task_id ?? null,
764
+ pipeline_id: state.pipeline_id,
765
+ stage: state.current_stage,
766
+ action: "jump",
767
+ status: "in_progress",
768
+ outputs: [],
769
+ knowledge_hit_count: 0,
770
+ gate_result: null,
771
+ next_actions: [],
772
+ delegate_hint: null,
773
+ blocked: true,
774
+ block_reason: "跳转操作必须指定目标阶段",
775
+ };
776
+ }
777
+ // 强确认校验
778
+ const expectedConfirmation = generateJumpConfirmationText(targetStage);
779
+ if (!params.confirmation_text || !verifyStrongConfirmation(expectedConfirmation, params.confirmation_text)) {
780
+ return {
781
+ task_id: params.task_id ?? null,
782
+ pipeline_id: state.pipeline_id,
783
+ stage: state.current_stage,
784
+ action: "jump",
785
+ status: "in_progress",
786
+ outputs: [],
787
+ knowledge_hit_count: 0,
788
+ gate_result: null,
789
+ next_actions: [],
790
+ delegate_hint: null,
791
+ blocked: true,
792
+ block_reason: "需要强确认才能跳转",
793
+ required_confirmation: expectedConfirmation,
794
+ };
795
+ }
796
+ // 校验目标阶段在管线中存在
797
+ const targetEntry = state.stages.find((s) => s.stage === targetStage);
798
+ if (!targetEntry) {
799
+ return {
800
+ task_id: params.task_id ?? null,
801
+ pipeline_id: state.pipeline_id,
802
+ stage: state.current_stage,
803
+ action: "jump",
804
+ status: "in_progress",
805
+ outputs: [],
806
+ knowledge_hit_count: 0,
807
+ gate_result: null,
808
+ next_actions: [],
809
+ delegate_hint: null,
810
+ blocked: true,
811
+ block_reason: `目标阶段 "${targetStage}" 不在管线中`,
812
+ };
813
+ }
814
+ // 执行跳转
815
+ const now = new Date().toISOString();
816
+ const currentStage = state.current_stage;
817
+ // 审计日志
818
+ appendAuditLogEntry(state, {
819
+ timestamp: now,
820
+ operation: "jump",
821
+ from_stage: currentStage,
822
+ to_stage: targetStage,
823
+ user_confirmation: params.confirmation_text,
824
+ });
825
+ // 更新阶段状态
826
+ for (const entry of state.stages) {
827
+ if (entry.stage === currentStage && entry.status === "in_progress") {
828
+ entry.status = "pending";
829
+ entry.started_at = null;
830
+ }
831
+ }
832
+ targetEntry.status = "in_progress";
833
+ targetEntry.started_at = now;
834
+ state.current_stage = targetStage;
835
+ await this.save(state);
836
+ return {
837
+ task_id: params.task_id ?? null,
838
+ pipeline_id: state.pipeline_id,
839
+ stage: targetStage,
840
+ action: "jump",
841
+ status: "in_progress",
842
+ outputs: targetEntry.outputs,
843
+ knowledge_hit_count: 0,
844
+ gate_result: null,
845
+ next_actions: [],
846
+ delegate_hint: null,
847
+ };
848
+ }
849
+ /** 重置:强确认后清空管线状态 */
850
+ async handleReset(params) {
851
+ const state = await this.requireCurrentPipeline();
852
+ // 强确认校验
853
+ const expectedConfirmation = generateResetConfirmationText(state.pipeline_id);
854
+ if (!params.confirmation_text || !verifyStrongConfirmation(expectedConfirmation, params.confirmation_text)) {
855
+ return {
856
+ task_id: params.task_id ?? null,
857
+ pipeline_id: state.pipeline_id,
858
+ stage: state.current_stage,
859
+ action: "reset",
860
+ status: "in_progress",
861
+ outputs: [],
862
+ knowledge_hit_count: 0,
863
+ gate_result: null,
864
+ next_actions: [],
865
+ delegate_hint: null,
866
+ blocked: true,
867
+ block_reason: "需要强确认才能重置管线",
868
+ required_confirmation: expectedConfirmation,
869
+ };
870
+ }
871
+ // 审计日志(重置前记录)
872
+ appendAuditLogEntry(state, {
873
+ timestamp: new Date().toISOString(),
874
+ operation: "reset",
875
+ reason: "用户请求重置管线",
876
+ user_confirmation: params.confirmation_text,
877
+ });
878
+ // 删除管线文件和指针
879
+ const yamlPath = this.pipelinePath(state.pipeline_id);
880
+ try {
881
+ await fs.unlink(yamlPath);
882
+ }
883
+ catch {
884
+ // 文件可能已不存在
885
+ }
886
+ const pointerPath = this.currentPointerPath();
887
+ try {
888
+ await fs.unlink(pointerPath);
889
+ }
890
+ catch {
891
+ // 文件可能已不存在
892
+ }
893
+ return {
894
+ task_id: params.task_id ?? null,
895
+ pipeline_id: state.pipeline_id,
896
+ stage: state.current_stage,
897
+ action: "reset",
898
+ status: "pending",
899
+ outputs: [],
900
+ knowledge_hit_count: 0,
901
+ gate_result: null,
902
+ next_actions: [],
903
+ delegate_hint: null,
904
+ block_reason: "管线已重置,请使用 [sf] 初始化 重新开始",
905
+ };
906
+ }
907
+ /** 归档:标记管线为归档状态 */
908
+ async handleArchive(_params) {
909
+ const state = await this.requireCurrentPipeline();
910
+ // 审计日志
911
+ appendAuditLogEntry(state, {
912
+ timestamp: new Date().toISOString(),
913
+ operation: "archive",
914
+ reason: "用户请求归档管线",
915
+ });
916
+ // 归档操作:清除指针文件(管线文件保留供历史查询)
917
+ const pointerPath = this.currentPointerPath();
918
+ try {
919
+ await fs.unlink(pointerPath);
920
+ }
921
+ catch {
922
+ // 文件可能已不存在
923
+ }
924
+ return {
925
+ task_id: _params.task_id ?? null,
926
+ pipeline_id: state.pipeline_id,
927
+ stage: state.current_stage,
928
+ action: "archive",
929
+ status: "completed",
930
+ outputs: [],
931
+ knowledge_hit_count: 0,
932
+ gate_result: null,
933
+ next_actions: [],
934
+ delegate_hint: null,
935
+ block_reason: "管线已归档",
936
+ };
937
+ }
938
+ // ═══════════════════════════════════════════
939
+ // 私有方法
940
+ // ═══════════════════════════════════════════
941
+ /** 运行门禁检查(公共逻辑抽取) */
942
+ async runGateCheck(stage, pipelineState, workDescription, knowledgeIndex, config) {
943
+ const gateResult = evaluateCertaintyGate({
944
+ stage,
945
+ knowledgeIndex,
946
+ workDescription,
947
+ pipelineState,
948
+ config,
949
+ });
950
+ // 附加置信度评分(由 confidence_scorer 基于门禁结果评估)
951
+ const confidenceScore = scoreGateCheckConfidence({
952
+ allChecksPassed: gateResult.overall_passed,
953
+ hasFailures: !gateResult.overall_passed,
954
+ isDegraded: gateResult.level1.knowledge_hits < gateResult.level1.min_required,
955
+ evidenceCount: gateResult.checks.filter((c) => c.passed).length,
956
+ matchedPatternsCount: gateResult.level2.risk_patterns_hit.length,
957
+ });
958
+ return { ...gateResult, confidence_score: confidenceScore };
959
+ }
960
+ /** 要求当前有活跃管线,否则抛出错误 */
961
+ async requireCurrentPipeline() {
962
+ const state = await this.getCurrentPipeline();
963
+ if (!state) {
964
+ throw new Error("无活跃管线,请先调用 sf_pipeline_init 初始化");
965
+ }
966
+ return state;
967
+ }
968
+ /** 管线 YAML 文件路径 */
969
+ pipelinePath(pipelineId) {
970
+ return path.join(this.stateDir, `${pipelineId}.yaml`);
971
+ }
972
+ /** 指针文件路径 */
973
+ currentPointerPath() {
974
+ return path.join(this.stateDir, "current-pipeline.json");
975
+ }
976
+ /**
977
+ * 原子保存管线状态 — CAS 乐观锁 + 进程内互斥。
978
+ *
979
+ * 写入前先读取磁盘当前版本,比较是否一致。
980
+ * 版本不匹配时抛出 OptimisticLockError。
981
+ * 进程内互斥确保同一进程中不会并发写入导致版本冲突。
982
+ */
983
+ saveInProgress = false;
984
+ async save(state) {
985
+ // 进程内互斥:防止同一进程内并发 save 导致乐观锁冲突
986
+ if (this.saveInProgress) {
987
+ throw new Error("save 操作正在进行中,请勿并发调用。");
988
+ }
989
+ this.saveInProgress = true;
990
+ try {
991
+ // CAS 校验:读取磁盘当前版本
992
+ const diskVersion = await this.readCurrentVersion(state.pipeline_id);
993
+ if (diskVersion !== null && diskVersion !== state.lock.version) {
994
+ throw new Error(`乐观锁冲突: 磁盘版本=${diskVersion}, 内存版本=${state.lock.version}。` +
995
+ "请重新加载状态后重试。");
996
+ }
997
+ // 递增锁版本
998
+ state.lock.version++;
999
+ state.lock.locked_at = new Date().toISOString();
1000
+ // 更新产出哈希(遍历阶段 outputs)
1001
+ if (state.output_hashes) {
1002
+ for (const entry of state.stages) {
1003
+ if (entry.outputs.length > 0) {
1004
+ const key = `${entry.stage}`;
1005
+ state.output_hashes[key] = crypto
1006
+ .createHash("sha256")
1007
+ .update(entry.outputs.join(","))
1008
+ .digest("hex")
1009
+ .slice(0, 16);
1010
+ }
1011
+ }
1012
+ }
1013
+ const filePath = this.pipelinePath(state.pipeline_id);
1014
+ const content = YAML.stringify(state);
1015
+ // 原子写:先写临时文件再重命名
1016
+ const tmpPath = filePath + ".tmp";
1017
+ await fs.writeFile(tmpPath, content, "utf-8");
1018
+ await fs.rename(tmpPath, filePath);
1019
+ }
1020
+ finally {
1021
+ this.saveInProgress = false;
1022
+ }
1023
+ }
1024
+ /** 读取磁盘上管线的当前版本号(fail-closed:仅 ENOENT 返回 null) */
1025
+ async readCurrentVersion(pipelineId) {
1026
+ const filePath = this.pipelinePath(pipelineId);
1027
+ try {
1028
+ const content = await fs.readFile(filePath, "utf-8");
1029
+ const parsed = YAML.parse(content);
1030
+ return parsed?.lock?.version ?? null;
1031
+ }
1032
+ catch (e) {
1033
+ // ENOENT = 首次写入,无先前版本(正常)
1034
+ if (e instanceof Error && "code" in e && e.code === "ENOENT") {
1035
+ return null;
1036
+ }
1037
+ // 其他异常(权限拒绝、YAML 损坏、IO 错误)→ fail-closed
1038
+ throw new Error(`管线版本号读取失败(CAS 校验),无法保证写入安全性: ${e instanceof Error ? e.message : String(e)}`);
1039
+ }
1040
+ }
1041
+ /** 写管线指针 */
1042
+ async writePointer(pipelineId) {
1043
+ const pointerPath = this.currentPointerPath();
1044
+ await fs.writeFile(pointerPath, JSON.stringify({ pipeline_id: pipelineId }), "utf-8");
1045
+ }
1046
+ /** 读管线指针 */
1047
+ async readPointer() {
1048
+ const pointerPath = this.currentPointerPath();
1049
+ try {
1050
+ const content = await fs.readFile(pointerPath, "utf-8");
1051
+ return JSON.parse(content);
1052
+ }
1053
+ catch {
1054
+ return null;
1055
+ }
1056
+ }
1057
+ }
1058
+ // ═══════════════════════════════════════════
1059
+ // 辅助函数
1060
+ // ═══════════════════════════════════════════
1061
+ /** 补全旧管线状态的缺失字段 */
1062
+ function ensurePipelineStateFields(state) {
1063
+ return {
1064
+ ...state,
1065
+ output_hashes: state.output_hashes ?? {},
1066
+ rollback_history: state.rollback_history ?? [],
1067
+ audit_log: state.audit_log ?? [],
1068
+ };
1069
+ }
1070
+ /** 追加审计日志条目 */
1071
+ function appendAuditLogEntry(state, entry) {
1072
+ if (!state.audit_log) {
1073
+ state.audit_log = [];
1074
+ }
1075
+ state.audit_log.push(entry);
1076
+ }
1077
+ /** 构建委托提示(Phase 2 使用) */
1078
+ function buildDelegateHint(stage, actionId, description) {
1079
+ // Phase 1:所有阶段无实际委托
1080
+ // Phase 2 将根据 stage + action 映射到旧工具
1081
+ const workflowIntent = STAGE_WORKFLOW_MAP[stage];
1082
+ if (!workflowIntent)
1083
+ return null;
1084
+ return {
1085
+ tool_name: "sf_stage_execute", // Phase 2: 动态选择
1086
+ args: {
1087
+ workflow_intent: workflowIntent,
1088
+ action: actionId,
1089
+ description: description ?? "",
1090
+ },
1091
+ };
1092
+ }
1093
+ /** 将 PipelineStageStatus 映射为 sf_next 的 stage_status */
1094
+ function mapStageStatus(status) {
1095
+ switch (status) {
1096
+ case "in_progress":
1097
+ return "in_progress";
1098
+ case "completed":
1099
+ return "completed";
1100
+ case "skipped":
1101
+ return "completed";
1102
+ case "pending":
1103
+ default:
1104
+ return "not_started";
1105
+ }
1106
+ }
1107
+ /** 根据管线状态推断项目阶段 */
1108
+ function inferProjectStage(pipeline) {
1109
+ const currentIndex = pipeline.stages.findIndex((s) => s.stage === pipeline.current_stage);
1110
+ const lastStageIndex = pipeline.stages.length - 1;
1111
+ // 最后阶段完成 → 已发布
1112
+ if (currentIndex === lastStageIndex && pipeline.stages[currentIndex].status === "completed") {
1113
+ return "released";
1114
+ }
1115
+ // 在设计阶段(需求分析、现有系统分析、架构设计、详细设计)
1116
+ const designStages = ["需求分析", "现有系统分析", "架构设计", "详细设计"];
1117
+ if (designStages.includes(pipeline.current_stage)) {
1118
+ return "design_in_progress";
1119
+ }
1120
+ // 在实现阶段(任务规划、编码与单元测试、代码审查、联调验证)
1121
+ return "development_in_progress";
1122
+ }
1123
+ /** 构建可用动作列表 */
1124
+ function buildAvailableActions(pipeline) {
1125
+ const actions = [];
1126
+ const currentIndex = pipeline.stages.findIndex((s) => s.stage === pipeline.current_stage);
1127
+ const lastStageIndex = pipeline.stages.length - 1;
1128
+ const currentEntry = pipeline.stages[currentIndex];
1129
+ // 始终可以执行当前阶段
1130
+ if (currentEntry && currentEntry.status === "in_progress") {
1131
+ actions.push({
1132
+ action: "execute",
1133
+ description_zh: `执行当前阶段: ${pipeline.current_stage}`,
1134
+ tool: "sf_stage_execute",
1135
+ params: { stage: pipeline.current_stage },
1136
+ });
1137
+ // 可以检查门禁
1138
+ actions.push({
1139
+ action: "gate_check",
1140
+ description_zh: "运行确定性门禁检查",
1141
+ tool: "sf_gate_check",
1142
+ params: { stage: pipeline.current_stage },
1143
+ });
1144
+ }
1145
+ // 当前阶段完成时可推进
1146
+ if (currentEntry?.status === "completed" && currentIndex < lastStageIndex) {
1147
+ actions.push({
1148
+ action: "advance",
1149
+ description_zh: "推进到下一阶段",
1150
+ tool: "sf_stage_advance",
1151
+ });
1152
+ }
1153
+ // 非首阶段可回退
1154
+ if (currentIndex > 0) {
1155
+ const stageContract = findStageContract(pipeline.current_stage);
1156
+ if (stageContract && stageContract.rollback_targets.length > 0) {
1157
+ actions.push({
1158
+ action: "rollback",
1159
+ description_zh: `回退到: ${stageContract.rollback_targets[0]}`,
1160
+ tool: "sf_stage_rollback",
1161
+ params: { target_stage: stageContract.rollback_targets[0] },
1162
+ });
1163
+ }
1164
+ }
1165
+ // 最后阶段完成 → 建议使用 sf_command
1166
+ if (currentIndex === lastStageIndex && currentEntry?.status === "completed") {
1167
+ actions.push({
1168
+ action: "complete",
1169
+ description_zh: "管线已完成,可以使用 [sf] 状态 查看最终状态",
1170
+ tool: "sf_command",
1171
+ params: { text: "[sf] 状态" },
1172
+ });
1173
+ }
1174
+ return actions;
1175
+ }
1176
+ /** B8: 任务规划推进一致性校验 */
1177
+ function checkTaskPlanningConsistency(state) {
1178
+ // Phase 1: 简化校验 — 检查详细设计阶段有产出
1179
+ const detailDesign = state.stages.find((s) => s.stage === "详细设计");
1180
+ if (detailDesign && detailDesign.status === "completed" && detailDesign.outputs.length === 0) {
1181
+ return { passed: false, details: "详细设计阶段无产出,任务规划无法验证一致性" };
1182
+ }
1183
+ // Phase 1 占位:接口覆盖率、数据表覆盖率、切片独立性检查
1184
+ // Phase 2 将接入真实的切片计划解析
1185
+ return { passed: true };
1186
+ }
1187
+ /** B12: 崩溃风险评估(现有系统分析阶段) */
1188
+ function checkCrashRisk(state) {
1189
+ // Phase 1: 简化检查 — 查看需求分析阶段产出是否包含崩溃关键词
1190
+ const reqAnalysis = state.stages.find((s) => s.stage === "需求分析");
1191
+ if (!reqAnalysis)
1192
+ return false;
1193
+ const crashKeywords = /崩溃|crash|宕机|挂掉|500|503|OOM|内存溢出/i;
1194
+ const hasCrashIndication = reqAnalysis.outputs.some((o) => crashKeywords.test(o));
1195
+ return hasCrashIndication;
1196
+ }
1197
+ //# sourceMappingURL=pipeline_state_machine.js.map